2200
How can I delete the selected items (including descendants)

// KeyDown event - Occurs when the user presses a key while an object has the focus.
FUNCTION g2anttEvents_KeyDown(OBJECT g2antt, INT KeyCode, INT Shift)
	_ObjectCallMethod( g2antt , "RemoveSelection");
END

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "SingleSel", 0);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "8/1/2017");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "SelBackColor", 15790320);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","8/2/2017","8/6/2017");
	h = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "AddBar", h,"Task","8/3/2017","8/9/2017");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Task 3");
	_ObjectCallMethod( items , "AddBar", h,"Task","8/4/2017","8/13/2017","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(h) = True");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 4"),"Task","8/5/2017","8/16/2017");
_ObjectCallMethod( g2antt , "EndUpdate");

2199
Dark mode

OBJECT chart,g2antt;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
back = 65536;
fore = 16777215;
_ObjectCallMethod( _ObjectGetProperty( g2antt , "VisualAppearance") , "Add", 1,"gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQ" +
	"gmPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYTh" +
	"dr4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "VisualAppearance") , "Add", 2,"gBFLBCJwBAEHhEJAAEhABPMIQAAYAQGKIcBiAKBQAGaAoDDcMgwQwAAxjIKUEwsACEIrjKCYVgOHYYQjGMZwHCMIhiGwcAChEZYHgkMYmDAMUhSE78axHG6PY7kKZ4b" +
	"iaKIqQLLEhSfJ0YyBECBZpfebIbjmIZMSLEIxDKItJSpCIaRgqWS6ahGO4JUbUFLQHT9IR4daIYRgEEBA");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "VisualAppearance") , "Add", 3,"gBFLBCJwBAEHhEJAAEhABUUIQAAYAQGKIcBiAKBQAGaAoDDcMgwQwAAxjIKUEwsACEIrjKCYVgOHYYQjGMZwGAsEwjAoYAChEaILgkMw2DBIQwgJIMEr/G6RZxjeL5C" +
	"jmG4nDhKMpybAcXxjBIYZJgOQpXb+PobTrNNLzfRFAxVAaWJikcZ4HpIAJNVLFdQ0XYMNSBISsBqrKiKcpeIIDWBZMbRZT1ZABCIZBpEW6LahENQwXrCN74DYkNTdKax" +
	"bbuaaXLhGCYBgIA==");
_ObjectSetProperty( g2antt , "HeaderAppearance", 5);
_ObjectSetProperty( g2antt , "BackColor", back);
_ObjectSetProperty( g2antt , "BackColorHeader", back);
_ObjectSetProperty( g2antt , "BackColorLevelHeader", back);
_ObjectSetProperty( g2antt , "BackColorSortBar", back);
_ObjectSetProperty( g2antt , "BackColorSortBarCaption", back);
_ObjectSetProperty( g2antt , "FilterBarBackColor", back);
_ObjectSetProperty( g2antt , "FilterBarForeColor", fore);
_ObjectSetProperty( g2antt , "ForeColor", fore);
_ObjectSetProperty( g2antt , "ForeColorHeader", fore);
_ObjectSetProperty( g2antt , "ForeColorSortBar", fore);
_ObjectSetProperty( g2antt , "SelBackColor", fore);
_ObjectSetProperty( g2antt , "SelForeColor", back);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(0) = 16777216");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(18) = 33554432");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(32) = -1");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(64) = 50331648");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(65) = back");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(66) = fore");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(20) = fore");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(21) = back");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(26) = back");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(27) = fore");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(28) = back");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(142) = 33554432");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(141) = 33554432");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(186) = fore");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(511) = back");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Description(25) = `<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>`");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "BackColor", back);
	_ObjectSetProperty( chart , "BackColorLevelHeader", back);
	_ObjectSetProperty( chart , "ForeColor", fore);
	_ObjectSetProperty( chart , "ForeColorLevelHeader", fore);
_ObjectCallMethod( g2antt , "EndUpdate");

2198
I have changed the font, but the item's height remains the same. What I am doing wrong

OBJECT g2antt;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
_ObjectCallMethod( g2antt , "LoadXML", "http://www.exontrol.net/testing.xml");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Font") , "Size", 22);
_ObjectSetProperty( g2antt , "HeaderHeight", 42);
_ObjectSetProperty( g2antt , "DefaultItemHeight", 36);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Items.ItemHeight(0) = Me.DefaultItemHeight");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "UnitWidth", _ObjectGetProperty( g2antt , "DefaultItemHeight"));
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "UnitScale", _ObjectGetProperty( _ObjectGetProperty( g2antt , "Chart") , "UnitScale"));
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.Bars.Item(`Task`).Height = 18");
_ObjectCallMethod( g2antt , "EndUpdate");

2197
I have changed from Project Summary Task to own task created with EBN to get a black frame then using different colors for project status. How can I enlarge the EBN being applied to the head-arrows shows the start/end margins of the range

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBold(Item) = True");
		_ObjectCallMethod( items , "AddBar", Item,_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,GroupItem(Item))"),"12/2/2017","12/2/2017");
		_ObjectCallMethod( items , "DefineSummaryBars", Item,"",-3,"");
END

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "Items") , "AddBar", Item,"Task","12/4/2017","12/10/2017");
END

OBJECT appearance,chart,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
appearance = _ObjectGetProperty( g2antt , "VisualAppearance");
	_ObjectCallMethod( appearance , "Add", 1,"gBFLBCJwBAEHhEJAAEhABN0GACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSKUOQTDKNYykCQBQAWCQ1DAJIqjOAkEhiGCUQClYYZBjWG4dQLOEYTN" +
	"C8WwHCIZBpEWgKChGKAlSANMjTZLkdR1ECmIhoSg4coKMoERBJco1BDdOQGAyEQShEC4fgmVwAP7aNoWVC1JynM6XaKmGbJAA6CZgQKGFh2LAdTzSf61cAtWpaUjmRZa" +
	"YSAFDxpiCYpfQjdUB2JDVfTVP6LbawS4KZgOR5eRboETYeAFcSZGrNMKEXLLSyudKRRreWQaPpGCZTRSUdZxSrbBhvEqlbRNMhwSBEEigNIxToOU4jFgeCROQwQRK9BB" +
	"oG0CQUEIdhAAyJJvjUeZdmmb5+C8HhiAeZJznoPQ+EgT4rlua4BjCfg+k8d5TkUCZ4w+fxfB+X5xn4fheGebZoH8X53koAR9CASAWAUfofjgJgKH+IJHnGcIDmER5iBE" +
	"eZgmgVgLgGYYYGoFRTCGaIGAYRYiCiFgmgmYQEF4KIKmKSBRBqCxjAiRgvgwYxIiGQYNmOCJlDUOpeAQBCAg=");
	_ObjectCallMethod( appearance , "Add", 2,"CP:1 -6 0 6 0");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/2/2017");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 342");
	_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Add", "S1") , "Color", 16777216);
	_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Add", "S2") , "Color", 50266112);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "C1");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "C2") , "AllowSort", 0);
_ObjectSetProperty( g2antt , "SingleSort", 0);
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectSetProperty( g2antt , "HeaderVisible", 1);
_ObjectSetProperty( g2antt , "HeaderAppearance", 1);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`S1`),1) = `SubItem A.1`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`S1`),1) = `SubItem A.1`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`S2`),1) = `SubItem B.1`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`S2`),1) = `SubItem B.1`");
_ObjectSetProperty( g2antt , "Layout", "MultipleSort = ^"C0:2^"");
_ObjectCallMethod( g2antt , "EndUpdate");

2196
How can I specify the cell's outline, border or lines around, when the cell gets selected

OBJECT appearance,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( g2antt , "AttachTemplate", "handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}");
appearance = _ObjectGetProperty( g2antt , "VisualAppearance");
	_ObjectCallMethod( appearance , "Add", 1,"gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wH" +
	"IMQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCq" +
	"Op6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZY" +
	"njUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgW" +
	"YRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=");
	_ObjectCallMethod( appearance , "Add", 2,"CP:1 -4 0 0 0");
_ObjectSetProperty( g2antt , "SelBackColor", 33554432);
_ObjectSetProperty( g2antt , "SelForeColor", 65536);
_ObjectSetProperty( g2antt , "FullRowSelect", 0);
_ObjectSetProperty( g2antt , "ShowFocusRect", 0);
_ObjectSetProperty( g2antt , "DefaultItemHeight", 24);
_ObjectSetProperty( g2antt , "HeaderHeight", 24);
_ObjectSetProperty( g2antt , "DrawGridLines", 2);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "C1");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "C2");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Cell 1`),1) = `Cell 2`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Cell 3`),1) = `Cell 4`");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Items") , "SelectPos", 1);
_ObjectSetProperty( g2antt , "SelectColumnIndex", 1);
_ObjectCallMethod( g2antt , "EndUpdate");

2195
How can I specify the cell's outline, border or lines around, when the item gets selected

OBJECT g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( g2antt , "AttachTemplate", "handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "VisualAppearance") , "Add", 1,"gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wH" +
	"IMQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCq" +
	"Op6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZY" +
	"njUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgW" +
	"YRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=");
_ObjectSetProperty( g2antt , "SelBackColor", 16777216);
_ObjectSetProperty( g2antt , "SelForeColor", 65536);
_ObjectSetProperty( g2antt , "ShowFocusRect", 0);
_ObjectSetProperty( g2antt , "DefaultItemHeight", 24);
_ObjectSetProperty( g2antt , "HeaderHeight", 24);
_ObjectSetProperty( g2antt , "DrawGridLines", 2);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "C1");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "C2");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Cell 1`),1) = `Cell 2`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Cell 3`),1) = `Cell 4`");
	_ObjectSetProperty( items , "SelectPos", 1);
_ObjectCallMethod( g2antt , "EndUpdate");

2194
How can I specify the cell's outline, border or lines around

OBJECT g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( g2antt , "AttachTemplate", "handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "VisualAppearance") , "Add", 1,"gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wH" +
	"IMQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCq" +
	"Op6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZY" +
	"njUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgW" +
	"YRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=");
_ObjectSetProperty( g2antt , "SelBackMode", 1);
_ObjectSetProperty( g2antt , "ShowFocusRect", 0);
_ObjectSetProperty( g2antt , "DefaultItemHeight", 24);
_ObjectSetProperty( g2antt , "HeaderHeight", 24);
_ObjectSetProperty( g2antt , "DrawGridLines", 2);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "C1");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "C2");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Cell 1`),1) = `Cell 2`");
	h = _ObjectCallMethod( items , "AddItem", "Cell 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `Cell 3`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellBackColor(h,1) = 16777216");
_ObjectCallMethod( g2antt , "EndUpdate");

2193
Is it possible to highligth the match while a filter is applied

// AddColumn event - Fired after a new column has been added.
FUNCTION g2anttEvents_AddColumn(OBJECT g2antt, OBJECT Column)
	' Column.Def(17) = 1

END

// FilterChange event - Occurs when the filter was changed.
FUNCTION g2anttEvents_FilterChange()
	format = _ObjectCallMethod( g2antt , "FormatABC", "`value replace '` + value + `' with '<bgcolor 000000><fgcolor FFFFFF>` + value  + `</fgcolor></bgcolor>'`",_ObjectGetProperty( g2antt , "FilterBarPromptPattern"));
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(0).FormatColumn = format");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).FormatColumn = format");
END

OBJECT g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "DrawGridLines", 2);
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Col 1");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Col 2");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`219 Smith`),1) = `Ignacio 1234`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`1666 County Road 309A`),1) = `897 Manassa`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`38 Lone Pine`),1) = `Durango 11`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`612 Jachim Street`),1) = `Lamar 222`");
_ObjectSetProperty( g2antt , "FilterBarPromptPattern", "1");
_ObjectSetProperty( g2antt , "FilterBarPromptVisible", 2067);
_ObjectSetProperty( g2antt , "FilterBarPromptType", 257);
_ObjectCallMethod( g2antt , "EndUpdate");

2192
How can I display the total/sum/aggregate in the same column, when the user groups by a column

// AddColumn event - Fired after a new column has been added.
FUNCTION g2anttEvents_AddColumn(OBJECT g2antt, OBJECT Column)
	OBJECT column;
	column = Column;
END

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(Item) = -1");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBackColor(Item) = Me.BackColorSortBar");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(Item) = Me.HeaderHeight");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellMerge(Item,0) = `1,2,3,4,5,7,8,9,10,11,12`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,13) = `count(current,rec,1)`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(Item,13) = 5");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,0) = CellCaption(Item,GroupItem(Item))");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(Item,0) = ``<b>` + value + `</b> <font ;7><off 3><fgcolor=808080>(` + %13 +  `)``");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,6) = `sum(current,all,dbl(%6))`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(Item,6) = 5");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellForeColor(Item,6) = 6710886");
END

// Change event - Occurs when the user changes the cell's content.
FUNCTION g2anttEvents_Change(OBJECT g2antt, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT column,columns,g2antt,items,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "LinesAtRoot", 5);
_ObjectSetProperty( g2antt , "Indent", 12);
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
_ObjectSetProperty( g2antt , "ScrollBySingleLine", -1);
_ObjectSetProperty( g2antt , "BackColorSortBar", 15790320);
_ObjectSetProperty( g2antt , "AutoDrag", 16);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( g2antt , "SingleSort", 0);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectSetProperty( g2antt , "HeaderHeight", 24);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Count") , "Visible", 0);
	column = _ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Item(`Freight`)");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(g2antt, "TemplatePut", column)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(4) = Me.BackColorSortBar");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(7) = Def(4)");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(49) = 4");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(48) = 4");
		_ObjectSetProperty( column , "HeaderBold", -1);
		_ObjectSetProperty( column , "AllowGroupBy", 0);
		_ObjectSetProperty( column , "FormatColumn", "value format ``");
		_ObjectSetProperty( column , "Alignment", 2);
	column = _ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Item(0)");
		_ObjectSetProperty( column , "AllowGroupBy", 0);
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(17) = 1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", columns)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Item(`ShipCountry`).SortOrder = 1");
_ObjectSetProperty( g2antt , "ScrollBySingleLine", 0);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItemCount(2) = 1");
	hL = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(2,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,hL")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", hL)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(hL) = 24");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBold(hL) = True");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBackColor(hL) = Me.BackColorSortBar");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(hL,6) = `sum(all,rec,dbl(%6))`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(hL,6) = 5");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellHAlignment(hL,6) = 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(hL,6) = `value format ```");
_ObjectCallMethod( g2antt , "EndUpdate");

2191
How do I add a total field locked at the bottom of the control

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDividerLine(Item) = 0");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(Item,GroupItem(Item)) = `value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column``");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,`Min`) = `min(current,all,dbl(%6))`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(Item,`Min`) = 4");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,`Max`) = `max(current,all,dbl(%6))`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(Item,`Max`) = 4");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,`Sum`) = `sum(current,all,dbl(%6))`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(Item,`Sum`) = 4");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBackColor(Item) = 15790320");
END

// Change event - Occurs when the user changes the cell's content.
FUNCTION g2anttEvents_Change(OBJECT g2antt, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT column,columns,g2antt,items,rs,var_column,var_column1;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HasLines", 0);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Description(26) = `Show/Hide`");
_ObjectSetProperty( g2antt , "ColumnsFloatBarSortOrder", 1);
_ObjectSetProperty( g2antt , "ColumnsFloatBarVisible", 2);
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
_ObjectSetProperty( g2antt , "BackColorSortBar", 15790320);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( g2antt , "SingleSort", 0);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectSetProperty( g2antt , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
columns = _ObjectGetProperty( g2antt , "Columns");
	column = _ObjectCallMethod( columns , "Add", "Min");
		_ObjectSetProperty( column , "Visible", 0);
		_ObjectSetProperty( column , "AllowDragging", 0);
	var_Column = _ObjectCallMethod( columns , "Add", "Max");
	var_column = var_Column;
		_ObjectSetProperty( var_column , "Visible", 0);
		_ObjectSetProperty( var_column , "Visible", 0);
		_ObjectSetProperty( var_column , "AllowDragging", 0);
	var_Column1 = _ObjectCallMethod( columns , "Add", "Sum");
	var_column1 = var_Column1;
		_ObjectSetProperty( var_column1 , "Visible", 0);
		_ObjectSetProperty( var_column1 , "Visible", 0);
		_ObjectSetProperty( var_column1 , "AllowDragging", 0);
column = _ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(`Freight`)");
	_ObjectSetProperty( column , "FormatColumn", "currency(value)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(4) = 12895487");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(7) = Def(4)");
	_ObjectSetProperty( column , "HeaderBold", -1);
	_ObjectSetProperty( column , "AllowGroupBy", 0);
	_ObjectSetProperty( column , "Alignment", 2);
_ObjectSetProperty( g2antt , "ScrollBySingleLine", 0);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItemCount(2) = 2");
	hL = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(2,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,hL")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", hL)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(hL) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(hL) = 3");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDividerLineAlignment(hL) = 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDividerLine(hL) = 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	hL = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(2,1)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,hL")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", hL)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(hL,6) = `sum(all,rec,dbl(%6))`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(hL,6) = 4");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(hL) = 24");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBold(hL) = True");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(`EmployeeID`).SortOrder = True");
_ObjectCallMethod( g2antt , "EndUpdate");

2190
How can I add a total field, when I use grouping

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDividerLine(Item) = 0");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(Item,GroupItem(Item)) = `value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column``");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,`Min`) = `min(current,all,dbl(%6))`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(Item,`Min`) = 4");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,`Max`) = `max(current,all,dbl(%6))`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(Item,`Max`) = 4");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,`Sum`) = `sum(current,all,dbl(%6))`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(Item,`Sum`) = 4");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBackColor(Item) = 15790320");
END

// Change event - Occurs when the user changes the cell's content.
FUNCTION g2anttEvents_Change(OBJECT g2antt, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT column,columns,g2antt,items,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HasLines", 0);
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
_ObjectSetProperty( g2antt , "BackColorSortBar", 15790320);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( g2antt , "SingleSort", 0);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = True");
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Min") , "Visible", 0);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Max") , "Visible", 0);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Sum") , "Visible", 0);
column = _ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(`Freight`)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(4) = 12895487");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(7) = Def(4)");
	_ObjectSetProperty( column , "HeaderBold", -1);
	_ObjectSetProperty( column , "AllowGroupBy", 0);
_ObjectSetProperty( g2antt , "ScrollBySingleLine", 0);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItemCount(2) = 1");
	hL = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(2,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,hL")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", hL)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(hL) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemHeight(hL) = 24");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDividerLineAlignment(hL) = 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDividerLine(hL) = 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(hL,0) = `sum(all,rec,dbl(%6))`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(hL,0) = 5");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellHAlignment(hL,0) = 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(hL,0) = `'Freight: <bgcolor=FFC4C4> '+(value format ``) + ` ``");
_ObjectCallMethod( g2antt , "EndUpdate");

2189
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeCheckColumns

OBJECT columns,g2antt;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "City");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Start") , "Visible", 0);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "End") , "Visible", 0);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Description(26) = `Show/Hide`");
_ObjectSetProperty( g2antt , "ColumnsFloatBarSortOrder", 1);
_ObjectSetProperty( g2antt , "ColumnsFloatBarVisible", 2);
_ObjectCallMethod( g2antt , "EndUpdate");

2188
The BackColorAlternate displays each second row with a different background color. The question I have it is possible to apply a different background color for 3rd, 4th, row, and so on

// LayoutChanged event - Occurs when column's position or column's size is changed.
FUNCTION g2anttEvents_LayoutChanged()
	_ObjectCallMethod( g2antt , "Refresh");
END

// Sort event - Fired when the control sorts a column.
FUNCTION g2anttEvents_Sort()
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT column,g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HasLines", 0);
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Position");
	_ObjectSetProperty( column , "FormatColumn", "1 apos ''");
	_ObjectSetProperty( column , "Visible", 0);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "(%C13 mod 4) = 0") , "BackColor", 15790320);
_ObjectCallMethod( g2antt , "EndUpdate");

2187
The BackColorAlternate looks fine for flat tables, but how about using it when displaying a hierarchy/tree, like grouping rows. The sample alternate colors for each group found

// LayoutChanged event - Occurs when column's position or column's size is changed.
FUNCTION g2anttEvents_LayoutChanged()
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT column,g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HasLines", 0);
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( g2antt , "SingleSort", 0);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = True");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Position");
	_ObjectSetProperty( column , "FormatColumn", "(0:= (1 rpos '')) left ( ( 1:= ( =:0 lfind `.` ) ) != -1 ? =:1 : len(=:0))");
	_ObjectSetProperty( column , "Visible", 0);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "(%C13 mod 2) != 0") , "BackColor", 15790320);
_ObjectCallMethod( g2antt , "EndUpdate");

2186
I need to display sub-totals in the grouping items. Is there any solution on this

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDivider(Item) = -1");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.EnableItem(Item) = False");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(Item,Me.TreeColumnIndex) = 1");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(Item,Me.TreeColumnIndex) = `%1`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(Item,`Freight`) = 5");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,`Freight`) = `sum(current,dir,%6)`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(Item,`Freight`) = ``<b>` + currency(value)`");
END

OBJECT g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "SelBackMode", 1);
_ObjectSetProperty( g2antt , "BackColorSortBar", 15790320);
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "SortBarCaption", "Drag a <b>column</b> header here to group by that column.");
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = 1");
_ObjectSetProperty( g2antt , "LinesAtRoot", 5);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(`ShipVia`).DisplayFilterButton = True");
_ObjectCallMethod( g2antt , "EndUpdate");

2185
I use a subtotal in exTop-Item, after grouping the item shows 0. What is the solution

OBJECT g2antt,items,rs;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( g2antt , "SingleSort", 0);
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(5).SortOrder = 1");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(6).FormatColumn = `currency(value)`");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItemCount(0) = 1");
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.LockedItem(0,0)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBackColor(h) = 15790320");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellBackColor(h,6) = 12500670");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,6) = `sum(all,rec,%6)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(h,6) = 4");
_ObjectCallMethod( g2antt , "Refresh");
_ObjectCallMethod( g2antt , "EndUpdate");

2184
How can I add multiple values/columns on the same line/item/row

// Change event - Occurs when the user changes the cell's content.
FUNCTION g2anttEvents_Change(OBJECT g2antt, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "SortOnClick", 0);
_ObjectSetProperty( g2antt , "LinesAtRoot", 5);
_ObjectSetProperty( g2antt , "Indent", 13);
_ObjectSetProperty( g2antt , "HeaderVisible", 0);
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Items");
	_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( columns , "Add", "Quantity") , "Editor") , "EditType", 4);
	_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( columns , "Add", "Value") , "Editor") , "EditType", 4);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,2) = `sum(current,dir,dbl(%1)*dbl(%2))`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(h,2) = 4");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(h,2) = ``Total: `+ value`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellHAlignment(h,2) = 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellBold(h,2) = True");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellEditorVisible(h,2) = False");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellEditorVisible(h,1) = False");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Item 1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h1")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h1)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h1,1) = 10");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h1,2) = 3");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Item 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h1,1) = 20");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h1,2) = 4");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( g2antt , "EndUpdate");

2183
Is it possible, to add more aggregate functions to grouping header

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(Item,GroupItem(Item)) = `value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column``");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,`Min`) = `min(current,all,dbl(%6))`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(Item,`Min`) = 4");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,`Max`) = `max(current,all,dbl(%6))`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(Item,`Max`) = 4");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(Item,`Sum`) = `sum(current,all,dbl(%6))`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(Item,`Sum`) = 4");
END

// Change event - Occurs when the user changes the cell's content.
FUNCTION g2anttEvents_Change(OBJECT g2antt, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT columns,g2antt,rs;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HasLines", 0);
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
rs = CreateObject("ADOR.Recordset");
	_ObjectCallMethod( rs , "Open", "Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb",3,3);
_ObjectSetProperty( g2antt , "DataSource", rs);
_ObjectSetProperty( g2antt , "SingleSort", 0);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(1).SortOrder = True");
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Min") , "Visible", 0);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Max") , "Visible", 0);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Sum") , "Visible", 0);
_ObjectCallMethod( g2antt , "EndUpdate");

2182
Is it possible to display more aggregate functions to a single cell (method 2)

// Change event - Occurs when the user changes the cell's content.
FUNCTION g2anttEvents_Change(OBJECT g2antt, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "SortOnClick", 0);
_ObjectSetProperty( g2antt , "LinesAtRoot", 5);
_ObjectSetProperty( g2antt , "Indent", 13);
_ObjectSetProperty( g2antt , "HeaderVisible", 0);
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Items");
	_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( columns , "Add", "Quantity") , "Editor") , "EditType", 4);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Sum") , "Visible", 0);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Min") , "Visible", 0);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "Max") , "Visible", 0);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellMerge(h,0) = 1");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(h,0) = ``Items, <b>sum(` + %2 + `), min(` + %3 + `), max(` + %4 + `)</b>``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(h,0) = 1");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,2) = `sum(current,dir,dbl(%1))`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(h,2) = 4");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,3) = `min(current,dir,dbl(%1))`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(h,3) = 4");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,4) = `max(current,dir,dbl(%1))`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(h,4) = 4");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Item 1`),1) = 10");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Item 2`),1) = 20");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Item 3`),1) = 30");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( g2antt , "EndUpdate");

2181
How can I use the current in the aggregate/total field

// Change event - Occurs when the user changes the cell's content.
FUNCTION g2anttEvents_Change(OBJECT g2antt, INT Item, INT ColIndex, VARIANT NewValue)
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "SortOnClick", 0);
_ObjectSetProperty( g2antt , "LinesAtRoot", 5);
_ObjectSetProperty( g2antt , "Indent", 13);
_ObjectSetProperty( g2antt , "HeaderVisible", 0);
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Items");
	_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( columns , "Add", "Quantity") , "Editor") , "EditType", 4);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `sum(current,dir,dbl(%1))`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(h,1) = 4");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(h,1) = ``Total: `+ value`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Item 1`),1) = 10");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Item 2`),1) = 20");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(InsertItem(h,,`Item 3`),1) = 30");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( g2antt , "EndUpdate");

2180
The CellValue/CellCaption property gets the result of a computed/total field with text formatting. Is it possible to get that value without text formatting

OBJECT g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "A") , "Editor") , "EditType", 4);
_ObjectSetProperty( _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "B") , "Editor") , "EditType", 4);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "A+B");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", 10);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = 20");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValueFormat(h,2) = 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,2) = `currency(dbl(%0)+dbl(%1))`");
	Message( "CellCaption returns " );
	Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellCaption(h,2)") );
	Message( "CellValue returns " );
	Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,2)") );
	Message( "ComputeValue returns " );
	Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ComputeValue(`dbl(%0)+dbl(%1)`,h,0,CellValueFormat(h,2))") );
_ObjectCallMethod( g2antt , "EndUpdate");

2179
Can I get the result of a specified formula as your control does using the ComputedField property
OBJECT g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "A");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "B");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", 10);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = 20");
	Message( "A+B is " );
	Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ComputeValue(`dbl(%0)+dbl(%1)`,h,0,2)") );
_ObjectCallMethod( g2antt , "EndUpdate");

2178
Is it possible to get the text without HTML formatting
OBJECT g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "<b>bold</b>");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ComputeValue(CellValue(h,0),h,0,1)") );
_ObjectCallMethod( g2antt , "EndUpdate");

2177
Transparent/Border SummaryBar

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddGroupItem(OBJECT g2antt, INT Item)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemDividerLine(Item) = 0");
		_ObjectCallMethod( items , "AddBar", Item,"Summary","12/2/2017","12/2/2017");
		_ObjectCallMethod( items , "DefineSummaryBars", Item,"",-3,"");
END

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "Items") , "AddBar", Item,"Task","12/4/2017","12/10/2017");
END

OBJECT bar,chart,column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "VisualAppearance") , "Add", 1,"gBFLBCJwBAEHhEJAAEhABHEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSKUOQTDKMIziaQJiYLBIaRgEUTRXASCQxDBKQBSeKkRRtDaOYDnGQYD" +
	"iCIouQLEIxDKItBSJCKURJkAZZHjeToSR5PMb0dKdAw5I6raShEaaIiqJIXP7Fc7QSA0EgTBIFajgOpQAb+bptW7FVDULTMQS5FCZKasOA7FgOZ4DWjUVpwTZ1Q4LC65" +
	"bjuaraawKbYbXrFYJQSA8EwjNjDcLuKqcKpvDJsSJIFKxOB2KYtBLMLbzLR5apjLZ0QLSOKRDoMEgRDYGdKjLScGrGao8ABtcBlAZJRjoOo5DJgeCQapUQhNczGQzQSI" +
	"iBOJZAFSQwRHcJhGh2BZvngMIeA8H4TksA5ylgZBeg8X4GmGX4nniPazneQ5VnKdp9H8P4vD+X57nMRofmgBZ4FgIAoBWdoBGAGAeAgfxfjgNZ1DqWxEA0ASAgA==");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/2/2017");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 256");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Summary`)");
		_ObjectSetProperty( bar , "Color", 16777216);
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(3) = `<%=%513%>`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(58) = 8");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "Pattern", 32);
		_ObjectSetProperty( bar , "Color", 0);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "C1");
	_ObjectCallMethod( columns , "Add", "C2");
	column = _ObjectCallMethod( columns , "Add", "Pos");
		_ObjectSetProperty( column , "FormatColumn", "1 pos ``");
		_ObjectSetProperty( column , "AllowGroupBy", 0);
		_ObjectSetProperty( column , "Position", 0);
		_ObjectSetProperty( column , "Width", 48);
		_ObjectSetProperty( column , "AllowSizing", 0);
_ObjectSetProperty( g2antt , "SortBarVisible", -1);
_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Item A`),1) = `SubItem A.1`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Item A`),1) = `SubItem A.2`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Item A`),1) = `SubItem A.3`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Item A`),1) = `SubItem A.4`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Item B`),1) = `SubItem B.1`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(`Item B`),1) = `SubItem B.2`");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(0).SortOrder = 1");
_ObjectCallMethod( g2antt , "EndUpdate");

2176
The bar's caption is very difficult to read if any pattern than exPatternSolid is used. Is there any way of displaying the bar's caption (except for displaying the caption outside the bar)

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Font") , "Size", 12);
_ObjectSetProperty( g2antt , "DefaultItemHeight", 24);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "Height", 21);
		_ObjectSetProperty( bar , "Pattern", 7);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "UnitWidth", 24);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001","");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,3) = `to do`");
	h = _ObjectCallMethod( items , "AddItem", "bgcolor");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,3) = `<bgcolor=FFFFFF> to do </bgcolor>`");
	h = _ObjectCallMethod( items , "AddItem", "fgcolor");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,3) = `<fgcolor=FFFFFF> to do </fgcolor>`");
	h = _ObjectCallMethod( items , "AddItem", "sha");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,3) = `<sha FFFFFF;2;2> to do </sha>`");
	h = _ObjectCallMethod( items , "AddItem", "out");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,3) = `<out 000000><fgcolor=FFFFFF>to do</fgcolor></out></font>`");
	h = _ObjectCallMethod( items , "AddItem", "gra");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001","");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,3) = `<fgcolor FFFFFF><gra 000000;1;1>to do</fgcolor>`");
_ObjectCallMethod( g2antt , "EndUpdate");

2175
How can I change the position of the bar's tooltip

// ToolTip event - Fired when the control prepares the object's tooltip.
FUNCTION g2anttEvents_ToolTip(OBJECT g2antt, INT Item, INT ColIndex, INT Visible, INT X, INT Y, INT CX, INT CY)
	Message( "ToolTip" );
	Message( Item );
	Message( ColIndex );
	Message( Visible );
	Message( X );
	Message( Y );
	Message( CX );
	Message( CY );
	X = _ObjectCallMethod( g2antt , "FormatABC", "value + 8",X);
	Y = _ObjectCallMethod( g2antt , "FormatABC", "value - 8",Y);
END

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 64");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`).Def(6) = `<b><%=%9 + '/' + %C0%></b><br><upline><dotline>Start: <%=%1%><br>End: <%=%2%><br>Duration: <%=(%2-%1)%><br>Working: <%=%258%>`");
	_ObjectSetProperty( chart , "LevelCount", 2);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Tasks A"),"Task","1/2/2001","1/4/2001");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Tasks B"),"Task","1/3/2001","1/8/2001");
_ObjectCallMethod( g2antt , "EndUpdate");

2174
How can I replace the cell's context menu ( while edit mode is running )

// RClick event - Fired when right mouse button is clicked
FUNCTION g2anttEvents_RClick()
	OBJECT createobject("exontrol.contextmenu");
	Message( "Edit Mode: " );
	Message( _ObjectGetProperty( g2antt , "Editing") );
	createobject("exontrol.contextmenu") = CreateObject("Exontrol.ContextMenu");
		_ObjectSetProperty( _ObjectGetProperty( createobject("exontrol.contextmenu") , "Items") , "ToString", "Check[chk],[sep],Item 1,Item 2,Item 3,Popup(A,B,C)");
		Message( _ObjectCallMethod( createobject("exontrol.contextmenu") , "Select", ) );
END

OBJECT editor,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HeaderAppearance", 1);
editor = _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column") , "Editor");
	_ObjectSetProperty( editor , "EditType", 1);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim ediObj")
	_ObjectCallMethod(g2antt, "TemplatePut", editor)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "ediObj.Option(202) = False");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "Item 1");
	_ObjectCallMethod( items , "AddItem", "Item 2");
_ObjectCallMethod( g2antt , "EndUpdate");

2173
Is it possible to highlight the column's header once a filter is applied (sample 2)

OBJECT appearance,column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
appearance = _ObjectGetProperty( g2antt , "VisualAppearance");
	_ObjectCallMethod( appearance , "Add", 1,"gBFLBCJwBAEHhEJAAEhABO8GACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwQgmNYDSBMcbwS" +
	"AsXRYFocJ5gOT6AjKBA2UclEZpajiTY3ABUEgUS5oOBIACqariaQJAAiCRQGiYZyHKaRSwPBKFYDIIjbJheTIDChNVxUcDENQjJqLBIDRzbarye59YBfeBXdgmA4LQbD" +
	"MRwNgMMQTDqKYbkOQZHbeGKAWTMEZzJj8cxTEqIaBhGTLfojSZMS7UGK1LLtMyHI6kP7sOiLfi2W4/W7XV72F79TzXIa2ZBuO57bhnAZ/VzGNj4PRNezfRqicjsGxcZw" +
	"Xg+TpQj0ew6gSOw7wSbozjsfYXi8PwMnSc52leHotl+MxjmoXh2nybxOH+SQtnYXx+D2P4vGMB56hQf5PCgBYeDwYBCEo1xggebgKH6IIDBYBgkiAQ5FgYPAhEIRgWGq" +
	"DBoC4GoCiGCBYhGBQPAWdIQp0eIUiWCZigiJgqgqYpIioJQhmIMhBH0NxjEMag2g2Y4ImYOoOmOSJeDQNxXlOLR3ECUAQICA=");
	_ObjectCallMethod( appearance , "Add", 2,"gBFLBCJwBAEHhEJAAEhABgsHQAAYAQGKIcBiAKBQAGaAoDDYNwwQwAAxDAKcEwsACEIrjKCRShyCYZRrGUgRCKQahLEiTIhGUYJHgmK4tRoAUgxWCEExrAaQJjjeCQF" +
	"i6LAtDhPMByfQEZQIGyjkgjNLUcSbG4AKgkCiXfpUAJVP7FcgSABEEigNIxToOU4jFgeCYLQKQRK2RC9GQGFCbLhpYKIahGTYWVheN5XXblez9P7ABQwKCcAwXBp7YIK" +
	"AT4XBIdYdQ7IL4xGA0AJPFoJC7mOQ5XiYAIBAZ/RL0LCcbxHHafVboQj6JouD5PUDVNY1XBdPynI6CbLhWy6Dq4UZzPwzeBifSHfDjRoJcCZe71KY3GwSEboNA6Kp+QB" +
	"HAmZoZjSPYIEiF47lOLJVnuYofBwJJHmaQoYj0MIRHeM4/m6cJ8B+fpBHQJ5SGKPYYH8OYMk+P5Bn4fxaAYZAvEIX4RgUWBGgCCAmAqApgkgNgOgMEYlGASoEkQeBWBa" +
	"BZhggZgagaYRoEwShWA6NZZAMQBAICA==");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(0) = 16777216");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(41) = 33554432");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(32) = -1");
_ObjectSetProperty( g2antt , "HeaderHeight", 28);
_ObjectSetProperty( g2antt , "BackColorHeader", 16777215);
_ObjectSetProperty( g2antt , "DrawGridLines", -2);
_ObjectSetProperty( g2antt , "HeaderVisible", 1);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "C1") , "DisplayFilterButton", -1);
	column = _ObjectCallMethod( columns , "Add", "C2");
		_ObjectSetProperty( column , "DisplayFilterButton", -1);
		_ObjectSetProperty( column , "Filter", "Item 2");
		_ObjectSetProperty( column , "FilterType", 240);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "C3") , "DisplayFilterButton", -1);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Item 1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `Item 2`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,2) = `Item 3`");
	h = _ObjectCallMethod( items , "AddItem", "Item 4");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `Item 5`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,2) = `Item 6`");
_ObjectCallMethod( g2antt , "ApplyFilter");
_ObjectCallMethod( g2antt , "EndUpdate");

2172
How can I make the expand/collapse glyphs DPI aware

OBJECT appearance,g2antt,items;

g2antt =  ObjectByName("AN1") ;
size = 2;
_ObjectCallMethod( g2antt , "BeginUpdate");
appearance = _ObjectGetProperty( g2antt , "VisualAppearance");
	_ObjectCallMethod( appearance , "Add", 3,"gBFLBCJwBAEHhEJAAEhEGAUHQAAYAQGKIcBiAKBQAGaAoDDYOA4QwAAxDAKcEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBRfIUEghGyNZjgNzQc" +
	"CQAI8T5IUgARBJIDSMY6DpOIxYHgmC4DEITNLxOK0EhRHCBZrgOCAYhqEY1Ro+dhPFYjVTMdK0LRtKy7Mq2aJmOpZDxWE7dZKpO5fbxXS67cr2fp/YBed4rfa7KTlOBK" +
	"cRQRBEFQPDqPZBkORZHh2FoLRJKbgtHJmHYNQWhVyYBbNCyTI6lahpeuHBx1QaWWxjbCMEr6bpoWLbFi3Ha1UzrPa8b5vSw7Gr+HzYQTHGPXGqaYJdZrnea6B7+U5XUJ" +
	"rnSOZciYHwhAeR5HDK+JVGqKRRmScx5HyfRei+H5bmmcp4Fi8o/CGGJKGQKZUGoFQigUPIiCeSZXnyHB6l0SAJn8JxfkIeZ5CgXxjCCAhyB8QgIlAM4MlKAIcCaIBIGY" +
	"GoGGEYhqBMMxgnICgRDUDQjESGwmAkWBuCqBoiHIVgkDQYgYESWg2E0YhohcJQigITg3CQSRyEyEYGGOWJwhQJD4FiFIMk0aJFGsIBkkOBJeDc+AchYJwJgIWhSgYZQp" +
	"FIVoVGOGQ4l2EwIBWMhgDmDhThCEwkAiaJchKDhjhgZhsCUY4iFCEoZkiaYQmSGAWhWQhgDuDpTjCDQiEgchAg0IpJBoDoFiEKBqCaCAimgIguH8IZnkPUhcBcJg+hGJ" +
	"ZnloYJsiaKZKGa24YnWSR0CkKhCA2CxlCqColhAYpqEKER0DqVZ0A0ASAgA==");
	_ObjectCallMethod( appearance , "Add", 4,"gBFLBCJwBAEHhEJAAEhABAQCg6AADACAxRDgMQBQKAAzQFAYbBwHCGAAGIYBTgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACjeQYJBCNYbTJAbqhY" +
	"IgAR3HqQZABCCSQKkYx0HScRiwPBMFwGIQmaaicZoJCiN4DTZAcIBRDUIxpDR9bBeKw3KqVaZnWhaNpWXZlTzKdSxXisF67RZSdi/XgvF5XXblez9P69LwXe5mUrGbyV" +
	"YghCCIKgeG4dR7IMhyLDcKQXCCVW7aGSsOwbAqAXpdGAXTQdDyLJKnaZqOi6BjjA4rNbHGIYJb1XTRMa1LJuG5LJrOeZ3Xre4BLfh1VoFRpjWIYNY1QS7TLOczzfRdDx" +
	"TiGVpkjCeJoD4Ng1hSRxiisVRKg8D4PkWZJznmPQ+F8Xx5guWpjHGWYMiYQodEaIRSCgU5KCSeh3naHB/iAAh9n8fwfgIeZ1CgXwjCCAhxl8AgIlAM4MlKAIcCaD54FY" +
	"FoFmGCBmBaBIJigPJNgKSAoDSVC+BIbIYCUYYoiYKoJgkWIMlGCAglMaJZDWCYiFyFIJkkOJYhEJc7G4PYPCOaJshQJBjgiVIUgyDRokEaggGSQ4El4N1CBiFgnAmAha" +
	"FKFZlFkShUhWJRYmITg3GSQgFGuGBOGOFJkCSSQCDoNgkiOCY0hUJJmmmQhvhqZtYmUOQmBWIRvhgTpjjSbAjEiEgchBZgyEaBIhigWgegqIhIjoDILiACB5nTL5WnWR" +
	"YOiSKYJnqGQ7CmOh2hqJ5OkYORxFyShKhSAxihkOomioY5YiqFIkFyTo1HkAxAEAgIA==");
	_ObjectCallMethod( appearance , "Add", 1,_ObjectCallMethod( g2antt , "FormatABC", "`CP:3 -` + int(value*dpi) + ` -` + int(value*dpi) + ` ` +  int(value*dpi) + ` ` + int(value*dpi)",size));
	_ObjectCallMethod( appearance , "Add", 2,_ObjectCallMethod( g2antt , "FormatABC", "`CP:4 -` + int(value*dpi) + ` -` + int(value*dpi) + ` ` +  int(value*dpi) + ` ` + int(value*dpi)",size));
_ObjectSetProperty( g2antt , "LinesAtRoot", 1);
_ObjectSetProperty( g2antt , "HasButtons", 4);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "HasButtonsCustom(0) = 16777216");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "HasButtonsCustom(1) = 33554432");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child");
_ObjectCallMethod( g2antt , "EndUpdate");

2171
Is it possible to highlight the column's header once a filter is applied (sample 1)

OBJECT appearance,column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
appearance = _ObjectGetProperty( g2antt , "VisualAppearance");
	_ObjectCallMethod( appearance , "Add", 2,"gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgAN" +
	"J0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8Y" +
	"NYuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4" +
	"hhKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mg" +
	"bhOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhW" +
	"BMJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=");
	_ObjectCallMethod( appearance , "Add", 1,"CP:2 -8 -4 2 4");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(0) = 33488638");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(41) = 16843009");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(32) = -1");
_ObjectSetProperty( g2antt , "HeaderHeight", 28);
_ObjectSetProperty( g2antt , "BackColorHeader", 16777215);
_ObjectSetProperty( g2antt , "DrawGridLines", -2);
_ObjectSetProperty( g2antt , "HeaderVisible", 1);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "C1") , "DisplayFilterButton", -1);
	column = _ObjectCallMethod( columns , "Add", "C2");
		_ObjectSetProperty( column , "DisplayFilterButton", -1);
		_ObjectSetProperty( column , "Filter", "Item 2");
		_ObjectSetProperty( column , "FilterType", 240);
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "C3") , "DisplayFilterButton", -1);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Item 1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `Item 2`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,2) = `Item 3`");
	h = _ObjectCallMethod( items , "AddItem", "Item 4");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `Item 5`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,2) = `Item 6`");
_ObjectCallMethod( g2antt , "ApplyFilter");
_ObjectCallMethod( g2antt , "EndUpdate");

2170
How do I update itemcount and matchitemcount of the FilterBarCaption after I added the item using the AddItem method
// Click event - Occurs when the user presses and then releases the left mouse button over the tree control.
FUNCTION g2anttEvents_Click()
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "Items") , "AddItem", "new");
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(True) = 0");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Item");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "FilterList", 9504);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Pos");
	_ObjectSetProperty( column , "AllowSizing", 0);
	_ObjectSetProperty( column , "AllowSort", 0);
	_ObjectSetProperty( column , "Width", 32);
	_ObjectSetProperty( column , "FormatColumn", "1 apos ``");
	_ObjectSetProperty( column , "Position", 0);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "Item A");
	_ObjectCallMethod( items , "AddItem", "Item B");
	_ObjectCallMethod( items , "AddItem", "Item C");
_ObjectSetProperty( g2antt , "FilterBarCaption", "`<r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount + 1" +
	") + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )");
_ObjectSetProperty( g2antt , "FilterBarPromptVisible", 3591);
_ObjectCallMethod( g2antt , "EndUpdate");

2169
The Edit method does not work while ReadOnly property is exLocked and the first column is hidden. Is there any fix

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
FUNCTION g2anttEvents_DblClick(OBJECT g2antt, INT Shift, INT X, INT Y)
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim c,hit")
	_ObjectCallMethod(g2antt, "TemplatePut", c)
	_ObjectCallMethod(g2antt, "TemplatePut", hit)
	var_ItemFromPoint = _ObjectCallMethod(g2antt, "ExecuteTemplate", "ItemFromPoint(-1,-1,c,hit)");
	_ObjectSetProperty( g2antt , "FocusColumnIndex", c);
	_ObjectCallMethod( g2antt , "Edit", );
END

OBJECT column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(True) = 0");
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
_ObjectSetProperty( g2antt , "AutoEdit", 0);
_ObjectSetProperty( g2antt , "ReadOnly", 1);
_ObjectSetProperty( g2antt , "AutoSearch", -1);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "") , "Visible", 0);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Contains");
	_ObjectSetProperty( column , "AutoSearch", 1);
	_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 1);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(),1) = `Tom Hanks`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(),1) = `Leonardo DiCaprio`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(),1) = `Will Smith`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(AddItem(),1) = `Tom Cruise`");
_ObjectCallMethod( g2antt , "EndUpdate");

2168
How can I highlight the cell's button with a different appearance, when cursor hovers it

OBJECT column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "VisualAppearance") , "Add", 1,"c:\exontrol\images\normal.ebn");
_ObjectSetProperty( g2antt , "DefaultItemHeight", 22);
_ObjectSetProperty( g2antt , "TreeColumnIndex", -1);
_ObjectSetProperty( g2antt , "SelForeColor", 0);
_ObjectSetProperty( g2antt , "SelBackColor", _ObjectGetProperty( g2antt , "BackColor"));
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(157) = 16777216");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Buttons");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(2) = True");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(17) = 1");
	_ObjectSetProperty( column , "Alignment", 1);
	_ObjectSetProperty( column , "HeaderAlignment", 1);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "Button <b>1</b>");
	_ObjectCallMethod( items , "AddItem", "Button <b>2</b>");
	_ObjectCallMethod( items , "AddItem", "Button <b>3</b>");
_ObjectCallMethod( g2antt , "EndUpdate");

2167
How to group one or more operations into a block when the user do undo or redo

OBJECT chart,g2antt,items,note;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "AllowUndoRedo", -1);
	_ObjectSetProperty( chart , "FirstVisibleDate", "6/20/2005");
	_ObjectSetProperty( chart , "AllowLinkBars", -1);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 64");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`).Height = 16");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "StartBlockUndoRedo");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","6/23/2005","6/27/2005","");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","6/28/2005","7/2/2005","");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod( items , "AddLink", "L1",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemByIndex(0)"),"",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemByIndex(1)"),"");
	_ObjectCallMethod( items , "EndBlockUndoRedo");
	h = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemByIndex(1)");
note = _ObjectCallMethod( _ObjectGetProperty( _ObjectGetProperty( g2antt , "Chart") , "Notes") , "Add", "NoteD",h,"6/26/2005","CTRL+Z (undo), CTRL+Y (redo)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim notObj")
	_ObjectCallMethod(g2antt, "TemplatePut", note)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartShadow(1) = False");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartToolTip(1) = `Press CTRL+Z to undo <br> and then press CTRL+Y to redo`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartTransparency(1) = 25");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartVOffset(1) = -2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartBackColor(1) = 65535");
_ObjectCallMethod( g2antt , "EndUpdate");

2166
I am using the Link property to customize the link, but when I press redo it (CTRL+Y) to redo it, not all properties are restored. What can be done

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "AllowUndoRedo", -1);
	_ObjectSetProperty( chart , "FirstVisibleDate", "6/20/2005");
	_ObjectSetProperty( chart , "AllowLinkBars", -1);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 64");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`).Height = 16");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","6/23/2005","7/1/2005","");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","6/27/2005","7/4/2005","");
	_ObjectCallMethod( items , "StartBlockUndoRedo");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod( items , "AddLink", "L1",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemByIndex(0)"),"",_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemByIndex(1)"),"");
	u = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.StartUpdateLink(`L1`)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L1`,10) = 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L1`,12) = `<fgcolor FF0000>CTRL+Z (undo), CTRL+Y (redo)`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L1`,13) = `Press CTRL+Z to undo <br> and then press CTRL+Y to redo`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L1`,6) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Link(`L1`,8) = 255");
	_ObjectCallMethod( items , "EndUpdateLink", u);
	_ObjectCallMethod( items , "EndBlockUndoRedo");
_ObjectCallMethod( g2antt , "EndUpdate");

2165
I am using the ItemBar property to customize the task, but when I press redo it (CTRL+Y) to redo it, not all properties are restored. What can be done

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "AllowUndoRedo", -1);
	_ObjectSetProperty( chart , "FirstVisibleDate", "6/20/2005");
	_ObjectSetProperty( chart , "AllowLinkBars", -1);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 64");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`).Height = 16");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","6/21/2005","6/30/2005","");
	h = _ObjectCallMethod( items , "AddItem", "Task 2");
	_ObjectCallMethod( items , "StartBlockUndoRedo");
	_ObjectCallMethod( items , "AddBar", h,"Task","6/27/2005","7/4/2005","","CTRL+Z (undo), CTRL+Y (redo)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	u = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.StartUpdateBar(h,``)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,33) = 255");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,6) = `Press CTRL+Z to undo <br> and then press CTRL+Y to redo`");
	_ObjectCallMethod( items , "EndUpdateBar", u);
	_ObjectCallMethod( items , "EndBlockUndoRedo");
_ObjectCallMethod( g2antt , "EndUpdate");

2164
The incremental search feature is no working for columns with editor assigned. What can be done

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
FUNCTION g2anttEvents_DblClick(OBJECT g2antt, INT Shift, INT X, INT Y)
	_ObjectCallMethod( g2antt , "Edit", );
END

OBJECT column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(True) = 0");
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
_ObjectSetProperty( g2antt , "AutoEdit", 0);
_ObjectSetProperty( g2antt , "AutoSearch", -1);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Contains");
	_ObjectSetProperty( column , "AutoSearch", 1);
	_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 1);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "Tom Hanks");
	_ObjectCallMethod( items , "AddItem", "Leonardo DiCaprio");
	_ObjectCallMethod( items , "AddItem", "Will Smith");
	_ObjectCallMethod( items , "AddItem", "Tom Cruise");
_ObjectCallMethod( g2antt , "EndUpdate");

2163
Each item is representated by a key as string. Is it possible to have a drop down editor to display more information when using the item's key

OBJECT editor,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(True) = 0");
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
editor = _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Multiple-Columns Tree DropDownListType") , "Editor");
	_ObjectSetProperty( editor , "EditType", 3);
	_ObjectCallMethod( editor , "AddItem", 0,"KR|Korea, Republic of");
	_ObjectCallMethod( editor , "AddItem", 1,"MO|Macao");
	_ObjectCallMethod( editor , "AddItem", 2,"SA|Saudi Arabia");
	_ObjectCallMethod( editor , "AddItem", 3,"EG|Egypt");
	_ObjectCallMethod( editor , "AddItem", 4,"GB|United Kingdom");
	_ObjectCallMethod( editor , "AddItem", 5,"GT|Guatemala");
	_ObjectCallMethod( editor , "AddItem", 6,"SR|Suriname");
	_ObjectCallMethod( editor , "AddItem", 7,"BM|Bermuda");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "EG");
	_ObjectCallMethod( items , "AddItem", "GB");
	_ObjectCallMethod( items , "AddItem", "BM");
_ObjectCallMethod( g2antt , "EndUpdate");

2162
My table includes codes/keys for items, can I display a drop down editor to include more information

OBJECT editor,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(True) = 0");
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
editor = _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Multiple-Columns DropDownListType") , "Editor");
	_ObjectSetProperty( editor , "EditType", 3);
	_ObjectSetProperty( editor , "DropDownAutoWidth", 0);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim ediObj")
	_ObjectCallMethod(g2antt, "TemplatePut", editor)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "ediObj.Option(57) = `City¦Coordinates¦State`");
	_ObjectCallMethod( editor , "AddItem", 0,"JV3|Jollyville¦3026N 09746W¦Texas");
	_ObjectCallMethod( editor , "AddItem", 1,"TMO|Altamont¦4021N 11017W¦Utah");
	_ObjectCallMethod( editor , "AddItem", 2,"IIM|Williamston¦4241N 08417W¦Michigan");
	_ObjectCallMethod( editor , "AddItem", 3,"IWN|Merrittstown¦3958N 07952W¦Pennsylvania");
	_ObjectCallMethod( editor , "AddItem", 4,"HOU|Houston¦2945N 09521W¦Texas");
	_ObjectCallMethod( editor , "AddItem", 5,"GSF|Gales Ferry¦4125N 07205W¦Connecticut");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "HOU");
	_ObjectCallMethod( items , "AddItem", "IIM");
	_ObjectCallMethod( items , "AddItem", "TMO");
_ObjectCallMethod( g2antt , "EndUpdate");

2161
How can I display and select from a multiple-columns tree editor

OBJECT editor,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(True) = 0");
_ObjectCallMethod( g2antt , "Images", "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq" +
	"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
	"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
	"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=");
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
editor = _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Multiple-Columns Tree DropDownListType") , "Editor");
	_ObjectSetProperty( editor , "EditType", 3);
	_ObjectSetProperty( editor , "DropDownAutoWidth", 0);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim ediObj")
	_ObjectCallMethod(g2antt, "TemplatePut", editor)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "ediObj.Option(57) = `Name¦Title¦City¦Phone`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "ediObj.Option(58) = `224¦¦¦96`");
	_ObjectCallMethod( editor , "AddItem", 1,"Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857",1);
	_ObjectCallMethod( editor , "AddItem", 2,"Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482",2);
	_ObjectCallMethod( editor , "InsertItem", 3,"Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412",3,2);
	_ObjectCallMethod( editor , "InsertItem", 4,"Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122",3,2);
	_ObjectCallMethod( editor , "InsertItem", 5,"Steven Buchanan¦Sales Manager¦London¦(71) 555-4848",2,2);
	_ObjectCallMethod( editor , "InsertItem", 6,"Michael Suyama¦Sales Representative¦London¦(71) 555-7773",1,5);
	_ObjectCallMethod( editor , "InsertItem", 7,"Robert King¦Sales Representative¦Kirkland¦(71) 555-5598",2,2);
	_ObjectCallMethod( editor , "InsertItem", 8,"Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189",3,2);
	_ObjectCallMethod( editor , "InsertItem", 9,"Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444",2,5);
	_ObjectCallMethod( editor , "ExpandAll");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", 1);
	_ObjectCallMethod( items , "AddItem", 2);
	_ObjectCallMethod( items , "AddItem", 4);
_ObjectCallMethod( g2antt , "EndUpdate");

2160
Does you control support multiple-columns for a drop down editor

OBJECT editor,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(True) = 0");
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
editor = _ObjectGetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Multiple-Columns DropDownListType") , "Editor");
	_ObjectSetProperty( editor , "EditType", 3);
	_ObjectSetProperty( editor , "DropDownAutoWidth", 0);
	_ObjectCallMethod( editor , "AddItem", 0,"Jollyville¦JV3¦3026N 09746W¦TX");
	_ObjectCallMethod( editor , "AddItem", 1,"Altamont¦TMO¦4021N 11017W¦UT");
	_ObjectCallMethod( editor , "AddItem", 2,"Williamston¦IIM¦4241N 08417W¦MI");
	_ObjectCallMethod( editor , "AddItem", 3,"Merrittstown¦IWN¦3958N 07952W¦PA");
	_ObjectCallMethod( editor , "AddItem", 4,"Houston¦HOU¦2945N 09521W¦TX");
	_ObjectCallMethod( editor , "AddItem", 5,"Gales Ferry¦GSF¦4125N 07205W¦CT");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "InsertItem", 0,"",1);
	_ObjectCallMethod( items , "InsertItem", 0,"",2);
	_ObjectCallMethod( items , "InsertItem", 0,"",4);
_ObjectCallMethod( g2antt , "EndUpdate");

2159
Is it possible to change the summary-bar's start or/and end margins

OBJECT chart,column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
_ObjectSetProperty( g2antt , "LinesAtRoot", 5);
_ObjectSetProperty( g2antt , "ColumnAutoResize", 0);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "AllowCreateBar", 0);
	_ObjectSetProperty( chart , "AllowLinkBars", 0);
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2008");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 256");
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Members") , "Width", 96);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Start");
	_ObjectSetProperty( column , "Width", 112);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 1");
	_ObjectSetProperty( column , "LevelKey", 1);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "End");
	_ObjectSetProperty( column , "Width", 112);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 2");
	_ObjectSetProperty( column , "LevelKey", 1);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	hR1 = _ObjectCallMethod( items , "AddItem", "Team");
	_ObjectCallMethod( items , "AddBar", hR1,"Summary","1/2/2008","1/8/2008","");
	_ObjectCallMethod( items , "AddBar", hR1,"","1/13/2008","1/13/2008","R");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,hR1")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", hR1)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(hR1,`R`,19) = 100");
	_ObjectCallMethod( items , "DefineSummaryBars", hR1,"",h1,"R");
	h1 = _ObjectCallMethod( items , "InsertItem", hR1,"","Member 1");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/2/2008","1/7/2008");
	_ObjectCallMethod( items , "DefineSummaryBars", hR1,"",h1,"");
	h1 = _ObjectCallMethod( items , "InsertItem", hR1,"","Member 2");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/4/2008","1/9/2008");
	_ObjectCallMethod( items , "DefineSummaryBars", hR1,"",h1,"");
	h1 = _ObjectCallMethod( items , "InsertItem", hR1,"","Member 3");
	_ObjectCallMethod( items , "AddBar", h1,"Task","1/5/2008","1/10/2008");
	_ObjectCallMethod( items , "DefineSummaryBars", hR1,"",h1,"");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(hR1) = True");
_ObjectCallMethod( g2antt , "EndUpdate");

2158
I want to display two lines/curves in the histogram-area such as expected and actual work effor per month. How can I do that (leaf)

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "FirstVisibleDate", "10/5/2020");
	_ObjectSetProperty( chart , "HistogramVisible", -1);
	_ObjectSetProperty( chart , "HistogramHeight", 96);
	_ObjectSetProperty( chart , "HistogramView", 1808);
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "HistogramPattern", 2048);
		_ObjectSetProperty( bar , "HistogramItems", -4);
		_ObjectSetProperty( bar , "HistogramBorderSize", 1);
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "Task","C");
		_ObjectSetProperty( bar , "HistogramPattern", 2048);
		_ObjectSetProperty( bar , "HistogramItems", -4);
		_ObjectSetProperty( bar , "HistogramColor", 255);
		_ObjectSetProperty( bar , "HistogramBorderSize", 2);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Project A");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "InsertItem", h,"","Item 1"),"Task","10/7/2020","10/14/2020");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "InsertItem", h,"","Item 2"),"Task","10/10/2020","10/17/2020");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Project B");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "InsertItem", h,"","Item 1"),"C","10/13/2020","10/20/2020");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "InsertItem", h,"","Item 2"),"C","10/15/2020","10/23/2020");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( g2antt , "EndUpdate");

2157
I want to display two lines/curves in the histogram-area such as expected and actual work effor per month. How can I do that (flat)

// BarResize event - Occurs when a bar is moved or resized.
FUNCTION g2anttEvents_BarResize(OBJECT g2antt, INT Item, VARIANT Key)
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item,Key")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod(g2antt, "TemplatePut", Key)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(Item,Key,21) = ItemBar(Item,Key,12)");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,Item")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", Item)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(Item,`C`,21) = 1");
END

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HeaderVisible", 1);
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "10/5/2020");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "HistogramHeight", 96);
	_ObjectSetProperty( chart , "HistogramVisible", -1);
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Add", "Task%Progress");
		_ObjectSetProperty( bar , "HistogramPattern", 2048);
		_ObjectSetProperty( bar , "HistogramItems", -4);
		_ObjectSetProperty( bar , "HistogramBorderSize", 1);
		_ObjectSetProperty( bar , "HistogramBorderColor", _ObjectGetProperty( bar , "Color"));
		_ObjectSetProperty( bar , "Shortcut", "P");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(14) = True");
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "Task","C");
		_ObjectSetProperty( bar , "HistogramPattern", 2048);
		_ObjectSetProperty( bar , "HistogramColor", 255);
		_ObjectSetProperty( bar , "HistogramBorderSize", 2);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks") , "FormatColumn", "`Task ` + (1 index ``)");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", );
	_ObjectCallMethod( items , "AddBar", h,"P","10/7/2020","10/14/2020","P");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`P`,12) = 0.5");
	_ObjectCallMethod( items , "AddBar", h,"C","10/7/2020","10/14/2020","C");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`C`,19) = 100");
	_ObjectCallMethod( items , "GroupBars", h,"P",-1,h,"C",-1);
	_ObjectCallMethod( items , "GroupBars", h,"P",0,h,"C",0);
	h = _ObjectCallMethod( items , "AddItem", );
	_ObjectCallMethod( items , "AddBar", h,"P","10/10/2020","10/17/2020","P");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`P`,12) = 0.75");
	_ObjectCallMethod( items , "AddBar", h,"C","10/10/2020","10/17/2020","C");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`C`,19) = 100");
	_ObjectCallMethod( items , "GroupBars", h,"P",-1,h,"C",-1);
	_ObjectCallMethod( items , "GroupBars", h,"P",0,h,"C",0);
	h = _ObjectCallMethod( items , "AddItem", );
	_ObjectCallMethod( items , "AddBar", h,"P","10/13/2020","10/20/2020","P");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`P`,12) = 0.25");
	_ObjectCallMethod( items , "AddBar", h,"C","10/13/2020","10/20/2020","C");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`C`,19) = 100");
	_ObjectCallMethod( items , "GroupBars", h,"P",-1,h,"C",-1);
	_ObjectCallMethod( items , "GroupBars", h,"P",0,h,"C",0);
_ObjectCallMethod( g2antt , "EndUpdate");

2156
Is it possible to show the filterbar on top of the rows

OBJECT column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "FilterBarPromptVisible", 8192);
_ObjectSetProperty( g2antt , "HeaderHeight", 24);
_ObjectSetProperty( g2antt , "FilterBarHeight", _ObjectGetProperty( g2antt , "HeaderHeight"));
_ObjectSetProperty( g2antt , "HeaderAppearance", 1);
_ObjectSetProperty( g2antt , "DrawGridLines", -1);
_ObjectSetProperty( g2antt , "GridLineStyle", 512);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "FilterType", 3);
	_ObjectSetProperty( column , "Filter", "B*");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Index");
	_ObjectSetProperty( column , "FormatColumn", "1 index ``");
	_ObjectSetProperty( column , "Position", 0);
	_ObjectSetProperty( column , "Width", 48);
	_ObjectSetProperty( column , "AllowSizing", 0);
	_ObjectSetProperty( column , "SortType", 1);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(0) = True");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "A.1");
	_ObjectCallMethod( items , "AddItem", "A.2");
	_ObjectCallMethod( items , "AddItem", "B.1");
	_ObjectCallMethod( items , "AddItem", "B.2");
	_ObjectCallMethod( items , "AddItem", "B.3");
	_ObjectCallMethod( items , "AddItem", "C");
_ObjectCallMethod( g2antt , "ApplyFilter");
_ObjectCallMethod( g2antt , "EndUpdate");

2155
The deadline symbol is now a white arrow and it is difficult to see. I want to create a green or black arrow for showing deadline

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 96");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Deadline`)");
		_ObjectSetProperty( bar , "StartColor", 32768);
		_ObjectSetProperty( bar , "StartShape", 12);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task"),"Deadline","1/2/2001","1/2/2001");
_ObjectCallMethod( g2antt , "EndUpdate");

2154
DragDrop (with visual effect)

// OLEDragDrop event - Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.
FUNCTION g2anttEvents_OLEDragDrop(OBJECT g2antt, OBJECT Data, INT Effect, INT Button, INT Shift, INT X, INT Y)
	' SelectItem(InsertItem(i,, Data.GetData(1))) = True
	OBJECT items;
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim c,hit")
	_ObjectCallMethod(g2antt, "TemplatePut", c)
	_ObjectCallMethod(g2antt, "TemplatePut", hit)
	i = _ObjectCallMethod(g2antt, "ExecuteTemplate", "ItemFromPoint(-1,-1,c,hit)");
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,i")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", i)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(i) = True");
END

// OLEStartDrag event - Occurs when the OLEDrag method is called.
FUNCTION g2anttEvents_OLEStartDrag(OBJECT g2antt, OBJECT Data, INT AllowedEffects)
	' Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
	AllowedEffects = 1;
END

OBJECT g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "VisualAppearance") , "Add", 1,"gBFLBCJwBAEHhEJAAEhABPUIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIaRjEEQDCKYcxHCaIBiGcaIfDEBIeSBHcgRbAcOQHGSZZBhGRJG" +
	"juKIbSrLICzBDUcRnGwAKQoaaaEomHwyAZOYwDAIoWhpKKCKjqWJKNb+XgAAJTES0RRVRTNAZ1YghGAQgIA==");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(96) = 16777216");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(97) = 1");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(33) = 0");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(34) = 16777215");
_ObjectSetProperty( g2antt , "OLEDropMode", 1);
_ObjectSetProperty( g2antt , "AutoDrag", 196608);
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
_ObjectSetProperty( g2antt , "Indent", 16);
_ObjectSetProperty( g2antt , "SelBackMode", 1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Default");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
Message( "You can:" );
Message( "A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)" );
Message( "B) right-click to re-arrange the item position inside the same control" );
Message( "This sample shows how you can insert the data being dropped as a child of the item being hovered." );

2153
DragDrop (with no visual effect, hide item while drag and drop)

// OLEDragDrop event - Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.
FUNCTION g2anttEvents_OLEDragDrop(OBJECT g2antt, OBJECT Data, INT Effect, INT Button, INT Shift, INT X, INT Y)
	' SelectItem(InsertItem(i,, Data.GetData(1))) = True
	OBJECT items;
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim c,hit")
	_ObjectCallMethod(g2antt, "TemplatePut", c)
	_ObjectCallMethod(g2antt, "TemplatePut", hit)
	i = _ObjectCallMethod(g2antt, "ExecuteTemplate", "ItemFromPoint(-1,-1,c,hit)");
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,i")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", i)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(i) = True");
END

// OLEStartDrag event - Occurs when the OLEDrag method is called.
FUNCTION g2anttEvents_OLEStartDrag(OBJECT g2antt, OBJECT Data, INT AllowedEffects)
	' Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
	AllowedEffects = 1;
END

OBJECT g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(33) = 0");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(34) = 16777215");
_ObjectSetProperty( g2antt , "OLEDropMode", 1);
_ObjectSetProperty( g2antt , "AutoDrag", 196608);
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
_ObjectSetProperty( g2antt , "Indent", 16);
_ObjectSetProperty( g2antt , "SelBackMode", 1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Default");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
Message( "You can:" );
Message( "A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)" );
Message( "B) right-click to re-arrange the item position inside the same control" );
Message( "This sample shows how you can insert the data being dropped as a child of the item being hovered." );

2152
DragDrop

// OLEDragDrop event - Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.
FUNCTION g2anttEvents_OLEDragDrop(OBJECT g2antt, OBJECT Data, INT Effect, INT Button, INT Shift, INT X, INT Y)
	' SelectItem(InsertItem(i,, Data.GetData(1))) = True
	OBJECT items;
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim c,hit")
	_ObjectCallMethod(g2antt, "TemplatePut", c)
	_ObjectCallMethod(g2antt, "TemplatePut", hit)
	i = _ObjectCallMethod(g2antt, "ExecuteTemplate", "ItemFromPoint(-1,-1,c,hit)");
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,i")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		_ObjectCallMethod(g2antt, "TemplatePut", i)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(i) = True");
END

// OLEStartDrag event - Occurs when the OLEDrag method is called.
FUNCTION g2anttEvents_OLEStartDrag(OBJECT g2antt, OBJECT Data, INT AllowedEffects)
	' Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
	AllowedEffects = 1;
END

OBJECT g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectSetProperty( g2antt , "OLEDropMode", 1);
_ObjectSetProperty( g2antt , "AutoDrag", 196608);
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
_ObjectSetProperty( g2antt , "Indent", 16);
_ObjectSetProperty( g2antt , "SelBackMode", 1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Default");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
Message( "You can:" );
Message( "A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)" );
Message( "B) right-click to re-arrange the item position inside the same control" );
Message( "This sample shows how you can insert the data being dropped as a child of the item being hovered." );

2151
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header (non-clickable)

OBJECT column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Item");
	column = _ObjectCallMethod( columns , "Add", "Pos");
		_ObjectSetProperty( column , "Position", 0);
		_ObjectSetProperty( column , "Width", 32);
		_ObjectSetProperty( column , "AllowSizing", 0);
		_ObjectSetProperty( column , "FormatColumn", "1 index ``");
		_ObjectSetProperty( column , "AllowSort", 0);
		_ObjectSetProperty( column , "AllowDragging", 0);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "Item A");
	_ObjectCallMethod( items , "AddItem", "Item B");
	_ObjectCallMethod( items , "AddItem", "Item C");
_ObjectCallMethod( g2antt , "EndUpdate");

2150
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header

OBJECT column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(32) = -1");
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Item");
	column = _ObjectCallMethod( columns , "Add", "Pos");
		_ObjectSetProperty( column , "Position", 0);
		_ObjectSetProperty( column , "Width", 32);
		_ObjectSetProperty( column , "AllowSizing", 0);
		_ObjectSetProperty( column , "FormatColumn", "1 index ``");
		_ObjectSetProperty( column , "AllowSort", 0);
		_ObjectSetProperty( column , "AllowDragging", 0);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "Item A");
	_ObjectCallMethod( items , "AddItem", "Item B");
	_ObjectCallMethod( items , "AddItem", "Item C");
_ObjectCallMethod( g2antt , "EndUpdate");

2149
How can I detect the last visible item
// SelectionChanged event - Fired after a new item has been selected.
FUNCTION g2anttEvents_SelectionChanged()
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.NextVisibleItem(FocusItem)") );
END

OBJECT g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
_ObjectSetProperty( g2antt , "AutoDrag", 3);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Column");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "InsertItem", _ObjectCallMethod( items , "AddItem", "Item 1"),"","Child 1");
	_ObjectCallMethod( items , "AddItem", "Item 2");
	_ObjectCallMethod( items , "AddItem", "Item 3");
	_ObjectCallMethod( items , "InsertItem", _ObjectCallMethod( items , "AddItem", "Item 4"),"","Child 4");
	_ObjectCallMethod( items , "AddItem", "Item 5");
_ObjectCallMethod( g2antt , "EndUpdate");

2148
Is it possible to show the non-working part on the back (behind the item's background)

// CellStateChanged event - Fired after cell's state has been changed.
FUNCTION g2anttEvents_CellStateChanged(OBJECT g2antt, INT Item, INT ColIndex)
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT appearance,bar,chart,column,conditionalformat,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "LinesAtRoot", 5);
_ObjectSetProperty( g2antt , "SelBackMode", 1);
_ObjectSetProperty( g2antt , "DefaultItemHeight", 22);
_ObjectSetProperty( g2antt , "GridLineStyle", 48);
_ObjectSetProperty( g2antt , "DrawGridLines", -1);
_ObjectSetProperty( g2antt , "HeaderVisible", 1);
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(0) = True");
	_ObjectSetProperty( column , "PartialCheck", -1);
appearance = _ObjectGetProperty( g2antt , "VisualAppearance");
	_ObjectCallMethod( appearance , "Add", 2,"gBFLBCJwBAEHhEJAAEhABUkIQAAYAQGKIcBiAKBQAGYBIJDEMQ3DjAUBjMK4ZwTC4AIQjCK4JDKHYJRpHEZgLBMJAAGIZYhhUYRUiYMkiJBGGDIDiGGI2SJAcbTVIEc" +
	"x9EyUJSgSTJOjCMokTTIU4TTLYASbJafJJhWSaAiyMouDIOMg1BDNIw/Hika6jOgKUisNJXRzWIBTbDlOQ3JqnbCjOQRSrQBoNDAMAiiaKlbwJPK9RoieQXfwUAJrXJc" +
	"FqXFSLVxNBKAQEBA=");
	_ObjectCallMethod( appearance , "Add", 4,"gBFLBCJwBAEHhEJAAEhABTcIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIaRiBMIxAKIZhzEiJYgGIZxYh8MQER5IEbyBDsBw5AaZZojGRJG" +
	"igNIqSxLUhTRKUdQrG4AKQnGhpDgmJYnU5EcrSUKQcw/JaiKYpGZYXpqO5OTzUIyVHDdKgFGKNKwjKiKKp6FofDJcADUcKAYBKFoaLjgS5bXhSGpnV5bFoWdLTVwhBKA" +
	"QEBA=");
	_ObjectCallMethod( appearance , "Add", 1,"CP:2 1 1 -1 -1");
	_ObjectCallMethod( appearance , "Add", 3,"CP:4 1 1 -1 -1");
conditionalformat = _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "%CS0 = 1");
	_ObjectSetProperty( conditionalformat , "BackColor", 50331648);
	_ObjectSetProperty( conditionalformat , "ChartBackColor", _ObjectGetProperty( conditionalformat , "BackColor"));
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "8/1/2017");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`).Pattern = 1");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Summary`)");
		_ObjectSetProperty( bar , "StartShape", 0);
		_ObjectSetProperty( bar , "EndShape", 0);
		_ObjectSetProperty( bar , "Shape", 4);
	_ObjectSetProperty( chart , "SelBackColor", _ObjectGetProperty( g2antt , "SelBackColor"));
	_ObjectSetProperty( chart , "SelBarColor", 8421504);
	_ObjectSetProperty( chart , "DrawGridLines", -1);
	_ObjectSetProperty( chart , "NonworkingDaysPattern", 1);
	_ObjectSetProperty( chart , "GridLineStyle", 304);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Project");
	hChild = _ObjectCallMethod( items , "InsertItem", h,"","Task 1");
	_ObjectCallMethod( items , "AddBar", hChild,"Task","8/2/2017","8/8/2017");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,hChild")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", hChild)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(hChild) = True");
	hChild = _ObjectCallMethod( items , "InsertItem", h,"","Task 2");
	_ObjectCallMethod( items , "AddBar", hChild,"Task","8/3/2017","8/10/2017");
	hChild = _ObjectCallMethod( items , "InsertItem", h,"","Task 3");
	_ObjectCallMethod( items , "AddBar", hChild,"Task","8/4/2017","8/12/2017");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellState(hChild,0) = 1");
	hChild = _ObjectCallMethod( items , "InsertItem", h,"","Task 4");
	_ObjectCallMethod( items , "AddBar", hChild,"Task","8/5/2017","8/14/2017");
	hChild = _ObjectCallMethod( items , "InsertItem", h,"","Task 5");
	_ObjectCallMethod( items , "AddBar", hChild,"Task","8/6/2017","8/16/2017");
	_ObjectCallMethod( items , "AddBar", h,"Summary","8/1/2017","8/1/2017","sum");
	_ObjectCallMethod( items , "DefineSummaryBars", h,"sum",-3,"");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "ItemBackColor");
	_ObjectCallMethod( items , "AddBar", h,"Progress","8/4/2017","8/14/2017");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBackColor(h) = 25198847");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.Me.Chart.ItemBackColor(h) = 25198847");
_ObjectCallMethod( g2antt , "EndUpdate");

2147
How can I hide a bar within the control's overview (sample 1)

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Default");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(18) = 12500670");
_ObjectSetProperty( g2antt , "BackColorLevelHeader", _ObjectGetProperty( g2antt , "BackColor"));
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 64");
	_ObjectSetProperty( chart , "OverviewHeight", 48);
	_ObjectSetProperty( chart , "OverviewVisible", 73730);
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2020");
	_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "Task","TaskO") , "Color", 255);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "");
	h = _ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2020","1/12/2020","K1");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/2/2020","12/12/2020","K2");
	h = _ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h,"TaskO","1/2/2020","1/12/2020","K1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,41) = -1");
	_ObjectCallMethod( items , "AddBar", h,"TaskO","12/2/2020","12/12/2020","K2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`K2`,41) = -1");
	h = _ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2020","1/12/2020","K1");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/2/2020","12/12/2020","K2");
_ObjectCallMethod( g2antt , "EndUpdate");

2146
How can I hide all bars within the control's overview (sample 2)

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Default");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(18) = 12500670");
_ObjectSetProperty( g2antt , "BackColorLevelHeader", _ObjectGetProperty( g2antt , "BackColor"));
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 64");
	_ObjectSetProperty( chart , "OverviewHeight", 48);
	_ObjectSetProperty( chart , "OverviewVisible", 8705);
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2020");
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "Task","TaskO");
		_ObjectSetProperty( bar , "OverviewColor", -1);
		_ObjectSetProperty( bar , "Color", 255);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "");
	h = _ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2020","1/12/2020","K1");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/2/2020","12/12/2020","K2");
	h = _ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h,"TaskO","1/2/2020","1/12/2020","K1");
	_ObjectCallMethod( items , "AddBar", h,"TaskO","12/2/2020","12/12/2020","K2");
	h = _ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2020","1/12/2020","K1");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/2/2020","12/12/2020","K2");
_ObjectCallMethod( g2antt , "EndUpdate");

2145
How can I hide all bars or specified type within the control's overview (sample 3)

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Default");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Background(18) = 12500670");
_ObjectSetProperty( g2antt , "BackColorLevelHeader", _ObjectGetProperty( g2antt , "BackColor"));
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 64");
	_ObjectSetProperty( chart , "OverviewHeight", 48);
	_ObjectSetProperty( chart , "OverviewVisible", 73730);
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2020");
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "Task","TaskO");
		_ObjectSetProperty( bar , "OverviewColor", -1);
		_ObjectSetProperty( bar , "Color", 255);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "");
	h = _ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2020","1/12/2020","K1");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/2/2020","12/12/2020","K2");
	h = _ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h,"TaskO","1/2/2020","1/12/2020","K1");
	_ObjectCallMethod( items , "AddBar", h,"TaskO","12/2/2020","12/12/2020","K2");
	h = _ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2020","1/12/2020","K1");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/2/2020","12/12/2020","K2");
_ObjectCallMethod( g2antt , "EndUpdate");

2144
Is it possible to exclude the parent/child items when do the filtering, so to include only items that match the filter without any indentation

// AddItem event - Occurs after a new Item has been inserted to Items collection.
FUNCTION g2anttEvents_AddItem(OBJECT g2antt, INT Item)
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "Items") , "AddBar", Item,"Task","1/2/2001","1/9/2001");
END

// FilterChange event - Occurs when the filter was changed.
FUNCTION g2anttEvents_FilterChange()
	_ObjectSetProperty( g2antt , "Indent", _ObjectCallMethod( g2antt , "FormatABC", "value > 0 ? 18 : 0",_ObjectGetProperty( _ObjectGetProperty( g2antt , "Items") , "MatchItemCount")));
END

OBJECT chart,column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
_ObjectSetProperty( g2antt , "Indent", 18);
_ObjectSetProperty( g2antt , "FilterInclude", 4);
_ObjectSetProperty( g2antt , "DrawGridLines", 2);
_ObjectSetProperty( g2antt , "HeaderAppearance", 1);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 164");
columns = _ObjectGetProperty( g2antt , "Columns");
	column = _ObjectCallMethod( columns , "Add", "Column");
		_ObjectSetProperty( column , "DisplayFilterButton", -1);
		_ObjectSetProperty( column , "FilterType", 240);
		_ObjectSetProperty( column , "FilterList", 256);
		_ObjectSetProperty( column , "Filter", "C1");
	column = _ObjectCallMethod( columns , "Add", "Pos");
		_ObjectSetProperty( column , "FormatColumn", "1 rindex ``");
		_ObjectSetProperty( column , "Position", 0);
		_ObjectSetProperty( column , "AllowSizing", 0);
		_ObjectSetProperty( column , "AllowDragging", 0);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "R1");
	h2 = _ObjectCallMethod( items , "InsertItem", h,"","S");
	_ObjectCallMethod( items , "InsertItem", h2,"","C1");
	_ObjectCallMethod( items , "InsertItem", h2,"","C2");
	_ObjectCallMethod( items , "InsertItem", h,"","C1");
	_ObjectCallMethod( items , "InsertItem", h,"","C2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "R2");
	_ObjectCallMethod( items , "InsertItem", h,"","C1");
	_ObjectCallMethod( items , "InsertItem", h,"","C2");
_ObjectCallMethod( g2antt , "ApplyFilter");
_ObjectCallMethod( g2antt , "EndUpdate");

2143
I am using the Chart.AllowResizeChart property. How can I customize the labels into the chart's levels
OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "AllowResizeChart", 262);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(0) = `year`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(1) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(2) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(16) = `month`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(17) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(256) = `week`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(4096) = `day`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(65536) = `hour`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(1048576) = ``");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Label(16777216) = ``");
	_ObjectSetProperty( chart , "ShowNonworkingDates", 0);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 48");
	_ObjectSetProperty( chart , "UnitWidth", 32);
	_ObjectSetProperty( chart , "UnitScale", 4096);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A"),"Task","1/2/2001","1/6/2001","K1");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task B"),"Task","1/6/2001","1/10/2001","K1");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task C"),"Task","1/10/2001","1/14/2001","K1");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", ""),"","1/8/2001","1/8/2001","Info","Click the <b>middle</b> mouse button and start dragging");
_ObjectCallMethod( g2antt , "EndUpdate");

2142
Is it possible to display the header using multiple lines, while chart display multiple levels (sample 2)

// AddColumn event - Fired after a new column has been added.
FUNCTION g2anttEvents_AddColumn(OBJECT g2antt, OBJECT Column)
	' Column.Def(52) = 4
	' Column.Def(53) = 4

END

OBJECT chart,columns,g2antt;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(True) = 256");
_ObjectSetProperty( g2antt , "HeaderVisible", 1);
_ObjectSetProperty( g2antt , "HeaderAppearance", 1);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Column");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "C1") , "HTMLCaption", "<b>C<off 4>1</b><br>left");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "C2") , "HTMLCaption", "<c><b>C<off 4>2</b><br><c>center");
	_ObjectSetProperty( _ObjectCallMethod( columns , "Add", "C3") , "HTMLCaption", "<r><b>C<off 4>3</b><br><r>right");
_ObjectCallMethod( g2antt , "EndUpdate");

2141
Is there any way to control the z-order of a TimeZone

OBJECT chart,g2antt;

g2antt =  ObjectByName("AN1") ;
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 0");
	_ObjectSetProperty( chart , "UnitWidth", 15);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/28/2009");
	_ObjectCallMethod( chart , "MarkTimeZone", "Top","1/1/2010","1/5/2010",16711680,"1;;<fgcolor=FFFFFF>Top;1");
	_ObjectCallMethod( chart , "MarkTimeZone", "Partial","1/8/2010","1/12/2010",16711680,"50;;<fgcolor=FFFFFF>Partial;1");
	_ObjectCallMethod( chart , "MarkTimeZone", "Default","1/15/2010","1/19/2010",16711680,";;<fgcolor=FFFFFF>Default;1");

2140
Is it possible to display the header using multiple lines, while chart display multiple levels (sample 1)

OBJECT g2antt;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "LevelCount", 2);
_ObjectSetProperty( g2antt , "HeaderHeight", 18);
_ObjectSetProperty( g2antt , "HeaderSingleLine", 0);
_ObjectSetProperty( g2antt , "HeaderVisible", 1);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "This is just a column that should break the header.") , "Width", 32);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "This is just another column that should break the header.");
_ObjectCallMethod( g2antt , "EndUpdate");

2139
Difference between HistogramValueFromPoint and HistogramValue (sample 2)

// MouseMove event - Occurs when the user moves the mouse.
FUNCTION g2anttEvents_MouseMove(OBJECT g2antt, INT Button, INT Shift, INT X, INT Y)
	OBJECT chart;
	chart = _ObjectGetProperty( g2antt , "Chart");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
		_ObjectCallMethod(g2antt, "TemplatePut", chart)
		v1 = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.HistogramValueFromPoint(-1,-1)");
		v2 = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.HistogramValue(DateFromPoint(-1,-1))");
		vMin = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.HistogramValue(`min`)");
		vMax = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.HistogramValue(`max`)");
	format = _ObjectCallMethod( g2antt , "FormatABC", "`<b>ValueFromPoint</b>: ` + A + `<br>ValueFromDate: ` + B",v1,v2);
	format = _ObjectCallMethod( g2antt , "FormatABC", "A  + `<br>Min: ` + B + `<br>Max: ` + C",format,vMin,vMax);
	_ObjectCallMethod( g2antt , "ShowToolTip", format,"","","16","16");
END

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstWeekDay", 1);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 40");
	_ObjectSetProperty( chart , "FirstVisibleDate", "6/9/2005");
	_ObjectSetProperty( chart , "HistogramVisible", -1);
	_ObjectSetProperty( chart , "HistogramView", 8304);
	_ObjectSetProperty( chart , "HistogramHeight", 128);
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "HistogramPattern", _ObjectGetProperty( bar , "Pattern"));
		_ObjectSetProperty( bar , "HistogramType", 256);
		_ObjectSetProperty( bar , "HistogramItems", -6);
		_ObjectSetProperty( bar , "HistogramRulerLinesColor", 65536);
		_ObjectSetProperty( bar , "HistogramBorderSize", 1);
		_ObjectSetProperty( bar , "HistogramBorderColor", 65536);
		_ObjectSetProperty( bar , "HistogramCumulativeOriginalColorBars", 0);
		_ObjectSetProperty( bar , "HistogramCumulativeShowLegend", -1);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task"),"Task","6/10/2005","6/14/2005","");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task"),"Task","6/11/2005","6/15/2005","");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task"),"Task","6/12/2005","6/16/2005","");
_ObjectCallMethod( g2antt , "EndUpdate");

2138
Difference between HistogramValueFromPoint and HistogramValue (sample 1)

// MouseMove event - Occurs when the user moves the mouse.
FUNCTION g2anttEvents_MouseMove(OBJECT g2antt, INT Button, INT Shift, INT X, INT Y)
	OBJECT chart;
	chart = _ObjectGetProperty( g2antt , "Chart");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
		_ObjectCallMethod(g2antt, "TemplatePut", chart)
		v1 = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.HistogramValueFromPoint(-1,-1)");
		v2 = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.HistogramValue(DateFromPoint(-1,-1))");
		vMin = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.HistogramValue(`min`)");
		vMax = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.HistogramValue(`max`)");
	format = _ObjectCallMethod( g2antt , "FormatABC", "`<b>ValueFromPoint</b>: ` + A + `<br>ValueFromDate: ` + B",v1,v2);
	format = _ObjectCallMethod( g2antt , "FormatABC", "A  + `<br>Min: ` + B + `<br>Max: ` + C",format,vMin,vMax);
	_ObjectCallMethod( g2antt , "ShowToolTip", format,"","","16","16");
END

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstWeekDay", 1);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 40");
	_ObjectSetProperty( chart , "FirstVisibleDate", "6/9/2005");
	_ObjectSetProperty( chart , "HistogramVisible", -1);
	_ObjectSetProperty( chart , "HistogramView", 112);
	_ObjectSetProperty( chart , "HistogramHeight", 128);
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "HistogramPattern", _ObjectGetProperty( bar , "Pattern"));
		_ObjectSetProperty( bar , "HistogramType", 0);
		_ObjectSetProperty( bar , "HistogramItems", -6);
		_ObjectSetProperty( bar , "HistogramRulerLinesColor", 65536);
		_ObjectSetProperty( bar , "HistogramBorderSize", 1);
		_ObjectSetProperty( bar , "HistogramBorderColor", 65536);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task"),"Task","6/10/2005","6/14/2005","");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task"),"Task","6/11/2005","6/15/2005","");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task"),"Task","6/12/2005","6/16/2005","");
_ObjectCallMethod( g2antt , "EndUpdate");

2137
I am using the Inside-Zoom feature, but the inside grid lines are more dashed the dotted

OBJECT chart,g2antt,insidezoomformat,insidezooms;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "UnitScale", 4096);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 0");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2008");
	insidezoomformat = _ObjectGetProperty( chart , "DefaultInsideZoomFormat");
		_ObjectSetProperty( insidezoomformat , "InsideLabel", "<%hh%>");
		_ObjectSetProperty( insidezoomformat , "InsideUnit", 65536);
		_ObjectSetProperty( insidezoomformat , "InsideCount", 8);
		_ObjectSetProperty( insidezoomformat , "GridLineStyle", 512);
	_ObjectSetProperty( chart , "AllowInsideZoom", -1);
	insidezooms = _ObjectGetProperty( chart , "InsideZooms");
		_ObjectCallMethod( insidezooms , "Add", "1/4/2008");
	_ObjectSetProperty( chart , "DrawGridLines", 2);
	_ObjectSetProperty( chart , "ShowNonworkingDates", 0);
_ObjectCallMethod( g2antt , "EndUpdate");

2136
I am using expressions for exBarEffort, but the histogram does not show correctly the data

OBJECT bar,chart,g2antt,insidezoom,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HeaderVisible", 1);
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "10/5/2020");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "HistogramHeight", 96);
	_ObjectSetProperty( chart , "HistogramVisible", -1);
	_ObjectSetProperty( chart , "AllowInsideZoom", -1);
	_ObjectSetProperty( chart , "DrawGridLines", -1);
	insidezoom = _ObjectCallMethod( _ObjectGetProperty( chart , "InsideZooms") , "Add", "10/7/2020");
		_ObjectSetProperty( insidezoom , "Width", 196);
	_ObjectSetProperty( _ObjectGetProperty( chart , "DefaultInsideZoomFormat") , "GridLineStyle", 48);
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "HistogramPattern", _ObjectGetProperty( bar , "Pattern"));
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(3) = `<%=%0%>`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(21) = `(hour(value) > 5 and hour(value) < 18) ? 2 : 0`");
	_ObjectSetProperty( chart , "HistogramUnitScale", 65536);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks") , "FormatColumn", "`Task ` + (1 index ``)");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", ""),"Task","10/7/2020","10/12/2020");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", ""),"Task","10/8/2020","10/13/2020");
_ObjectCallMethod( g2antt , "EndUpdate");

2135
How can I specify the z-order of bars to be shown within the chart's histogram

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HeaderVisible", 1);
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "10/5/2020");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "HistogramHeight", 96);
	_ObjectSetProperty( chart , "HistogramVisible", -1);
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Add", "A");
		_ObjectSetProperty( bar , "Color", 16711680);
		_ObjectSetProperty( bar , "HistogramPattern", 1);
		_ObjectSetProperty( bar , "HistogramItems", -6);
		_ObjectSetProperty( bar , "HistogramCumulativeOriginalColorBars", 1);
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(3) = `<%=%0%>`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "A","B");
		_ObjectSetProperty( bar , "Color", 65280);
		_ObjectSetProperty( bar , "HistogramCumulativeOriginalColorBars", 1);
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(3) = `<%=%0%>`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
	_ObjectSetProperty( chart , "HistogramView", 8304);
	_ObjectSetProperty( chart , "HistogramZOrder", "A,B");
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks") , "FormatColumn", "`Task ` + (1 index ``)");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", ""),"A","10/7/2020","10/12/2020");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", ""),"A","10/8/2020","10/13/2020");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", ""),"B","10/9/2020","10/14/2020");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", ""),"B","10/10/2020","10/15/2020");
_ObjectCallMethod( g2antt , "EndUpdate");

2134
How can I show cumulative histogram for two or more different types of bars

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "HeaderVisible", 1);
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "10/5/2020");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "HistogramHeight", 96);
	_ObjectSetProperty( chart , "HistogramVisible", -1);
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Add", "A");
		_ObjectSetProperty( bar , "Color", 16711680);
		_ObjectSetProperty( bar , "HistogramPattern", 1);
		_ObjectSetProperty( bar , "HistogramItems", -6);
		_ObjectSetProperty( bar , "HistogramCumulativeOriginalColorBars", 1);
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(3) = `<%=%0%>`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "A","B");
		_ObjectSetProperty( bar , "Color", 65280);
		_ObjectSetProperty( bar , "HistogramCumulativeOriginalColorBars", 1);
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(3) = `<%=%0%>`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
	_ObjectSetProperty( chart , "HistogramView", 8304);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks") , "FormatColumn", "`Task ` + (1 index ``)");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", ""),"A","10/7/2020","10/12/2020");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", ""),"A","10/8/2020","10/13/2020");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", ""),"B","10/9/2020","10/14/2020");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", ""),"B","10/10/2020","10/15/2020");
_ObjectCallMethod( g2antt , "EndUpdate");

2133
I would like to display a solid line between "root" items, and dotted lines (default) between child items. How can I do that

OBJECT column,conditionalformat,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
_ObjectSetProperty( g2antt , "DrawGridLines", 1);
_ObjectSetProperty( g2antt , "GridLineStyle", 512);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "VisualAppearance") , "Add", 1,"gBFLBCJwBAEHhEJAAEhABMsIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIXRpFMbxAKQahLEiTIgGUYJHgmK4tQLHb7zGAABRDDSOIDnGQJX" +
	"haI4JQSMMQDGLAZxVFiPRhAWLpBh+PQATrOdLUfSjVwhBKAQEBA==");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Default");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(0) = True");
	_ObjectSetProperty( column , "PartialCheck", -1);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Position");
	_ObjectSetProperty( column , "FormatColumn", "((1 rindex ``) contains `.`) = 0");
	_ObjectSetProperty( column , "Visible", 0);
conditionalformat = _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "%C1");
	_ObjectSetProperty( conditionalformat , "BackColor", 31514848);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 3");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	h = _ObjectCallMethod( items , "AddItem", "Root 3");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
_ObjectCallMethod( g2antt , "EndUpdate");

2132
I can not center or align the cell's caption and icon, when it displays the hierarchy

OBJECT column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( g2antt , "Images", "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq" +
	"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
	"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
	"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(17) = 1");
_ObjectSetProperty( g2antt , "HeaderVisible", 1);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Project");
	hChild = _ObjectCallMethod( items , "InsertItem", h,"","<img>1</img> Task (left)");
	hChild = _ObjectCallMethod( items , "InsertItem", h,"","<c><img>2</img> Task (center)");
	hChild = _ObjectCallMethod( items , "InsertItem", h,"","<r>Task (right) <img>3</img>");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( g2antt , "EndUpdate");

2131
How do I mask for float/integer number

OBJECT editor,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "ColumnAutoResize", -1);
_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Type") , "Width", 32);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Editor");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Integer");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `12`");
	editor = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellEditor(h,1)");
		_ObjectSetProperty( editor , "EditType", 1);
		_ObjectSetProperty( editor , "Numeric", -1);
	h = _ObjectCallMethod( items , "AddItem", "Integer (mask, group)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `10002`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(h,1) = `value format `0||``");
	editor = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellEditor(h,1)");
		_ObjectSetProperty( editor , "EditType", 8);
		_ObjectSetProperty( editor , "Mask", ";;;float,digits=0,invalid=empty,warning=invalid character");
	h = _ObjectCallMethod( items , "AddItem", "Integer (mask, no group)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `10002`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(h,1) = `value format `0|0|``");
	editor = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellEditor(h,1)");
		_ObjectSetProperty( editor , "EditType", 8);
		_ObjectSetProperty( editor , "Mask", ";;;float,digits=0,grouping=,invalid=empty,warning=invalid character");
	h = _ObjectCallMethod( items , "AddItem", "Float");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `+12.34E+2`");
	editor = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellEditor(h,1)");
		_ObjectSetProperty( editor , "EditType", 1);
		_ObjectSetProperty( editor , "Numeric", 1);
	h = _ObjectCallMethod( items , "AddItem", "Float (no signs)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `12.34E-2`");
	editor = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellEditor(h,1)");
		_ObjectSetProperty( editor , "EditType", 1);
		_ObjectSetProperty( editor , "Numeric", 769);
	h = _ObjectCallMethod( items , "AddItem", "Float-Integer");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `+12.34`");
	editor = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellEditor(h,1)");
		_ObjectSetProperty( editor , "EditType", 1);
		_ObjectSetProperty( editor , "Numeric", 2);
	h = _ObjectCallMethod( items , "AddItem", "Float-Integer (no signs)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `12.34`");
	editor = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellEditor(h,1)");
		_ObjectSetProperty( editor , "EditType", 1);
		_ObjectSetProperty( editor , "Numeric", 770);
	h = _ObjectCallMethod( items , "AddItem", "Float (mask,group)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `10002.34`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(h,1) = `value format `2``");
	editor = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellEditor(h,1)");
		_ObjectSetProperty( editor , "EditType", 8);
		_ObjectSetProperty( editor , "Mask", ";;;float,invalid=empty,warning=invalid character");
	h = _ObjectCallMethod( items , "AddItem", "Float (mask, no group)");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellValue(h,1) = `10002.34`");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.FormatCell(h,1) = `value format `2|0|``");
	editor = _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellEditor(h,1)");
		_ObjectSetProperty( editor , "EditType", 8);
		_ObjectSetProperty( editor , "Mask", ";;;float,grouping=,invalid=empty,warning=invalid character");
_ObjectCallMethod( g2antt , "EndUpdate");

2130
Is it possible to offset (horizontally) the bar's caption

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "HOffset");
_ObjectSetProperty( g2antt , "HeaderAppearance", 1);
_ObjectSetProperty( g2antt , "ScrollBySingleLine", -1);
_ObjectSetProperty( g2antt , "DrawGridLines", -2);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "DrawGridLines", -2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/16/2000");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "Pattern", 32);
		_ObjectSetProperty( bar , "Color", 10790052);
		_ObjectSetProperty( bar , "StartColor", 15790320);
		_ObjectSetProperty( bar , "EndColor", _ObjectGetProperty( bar , "StartColor"));
		_ObjectSetProperty( bar , "Height", 15);
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(3) = `label`");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "right");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/22/2000","12/27/2000");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,4) = 2");
	h = _ObjectCallMethod( items , "AddItem", "right - 4");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/22/2000","12/27/2000");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,4) = 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,58) = -4");
	h = _ObjectCallMethod( items , "AddItem", "left");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/22/2000","12/27/2000");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,4) = 0");
	h = _ObjectCallMethod( items , "AddItem", "left + 4");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/22/2000","12/27/2000");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,4) = 0");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,58) = 4");
_ObjectCallMethod( g2antt , "EndUpdate");

2129
Is it possible to always center the bar's caption (even if the item-bar is partially visible)

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Align");
_ObjectSetProperty( g2antt , "HeaderAppearance", 1);
_ObjectSetProperty( g2antt , "ScrollBySingleLine", -1);
_ObjectSetProperty( g2antt , "DrawGridLines", -2);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "DrawGridLines", -2);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/23/2000");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "Pattern", 32);
		_ObjectSetProperty( bar , "Color", 10790052);
		_ObjectSetProperty( bar , "StartColor", 15790320);
		_ObjectSetProperty( bar , "EndColor", _ObjectGetProperty( bar , "StartColor"));
		_ObjectSetProperty( bar , "Height", 15);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "default");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/22/2000","12/27/2000","","label");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,4) = 1");
	h = _ObjectCallMethod( items , "AddItem", "default + 32");
	_ObjectCallMethod( items , "AddBar", h,"Task","12/22/2000","12/27/2000","","label");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,4) = 33");
_ObjectCallMethod( g2antt , "EndUpdate");

2128
How do I set an extra data for each item
// MouseMove event - Occurs when the user moves the mouse.
FUNCTION g2anttEvents_MouseMove(OBJECT g2antt, INT Button, INT Shift, INT X, INT Y)
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim c,hit")
	_ObjectCallMethod(g2antt, "TemplatePut", c)
	_ObjectCallMethod(g2antt, "TemplatePut", hit)
	i = _ObjectCallMethod(g2antt, "ExecuteTemplate", "ItemFromPoint(-1,-1,c,hit)");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim _ObObj,i")
	_ObjectCallMethod(g2antt, "TemplatePut", _ObjectGetProperty( g2antt , "Items"))
	_ObjectCallMethod(g2antt, "TemplatePut", i)
	Message( i );
	Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "_ObObj.ItemData(i)") );
END

OBJECT g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "ColumnAutoResize", -1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Default");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemData(AddItem(`method 1`)) = `your extra data of method 1`");
	_ObjectCallMethod( items , "InsertItem", 0,"your extra data of method 2","method 2");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "DefaultItem", _ObjectCallMethod( items , "AddItem", "method 3"));
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemData(0) = `your extra data of method 3`");
_ObjectCallMethod( g2antt , "EndUpdate");

2127
Is it possible to show the position of rows the into the chart section

// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
FUNCTION g2anttEvents_BeforeExpandItem(OBJECT g2antt, INT Item, VARIANT Cancel)
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT bar,chart,column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Indent", 16);
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
_ObjectSetProperty( g2antt , "HasLines", 1);
_ObjectSetProperty( g2antt , "DrawGridLines", 1);
_ObjectSetProperty( g2antt , "ScrollBySingleLine", -1);
_ObjectSetProperty( g2antt , "FullRowSelect", 0);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Pos");
	_ObjectSetProperty( column , "Visible", 0);
	_ObjectSetProperty( column , "FormatColumn", "`<r><bgcolor 000000><fgcolor FFFFFF> ` + 1 apos `` + ` </fgcolor></bgcolor>`");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(17) = 1");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "ColumnsFormatLevel", ",|,1:64");
	_ObjectSetProperty( chart , "FirstVisibleDate", "9/20/2006");
	_ObjectSetProperty( chart , "ShowCollapsedBars", -1);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 128");
	_ObjectSetProperty( chart , "DrawGridLines", 1);
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "OverlaidType", 3);
		_ObjectSetProperty( bar , "Color", 0);
		_ObjectSetProperty( bar , "StartColor", 12895428);
		_ObjectSetProperty( bar , "EndColor", 12895428);
		_ObjectSetProperty( bar , "Pattern", 32);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Project 1");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Resources");
	_ObjectCallMethod( items , "AddBar", h1,"Task","9/21/2006","9/25/2006","A");
	_ObjectCallMethod( items , "AddBar", h1,"Task","9/24/2006","9/28/2006","B");
	_ObjectCallMethod( items , "AddBar", h1,"Task","9/27/2006","9/29/2006","C");
	h = _ObjectCallMethod( items , "AddItem", "Project 2");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Resources");
	_ObjectCallMethod( items , "AddBar", h1,"Task","9/21/2006","9/25/2006","A");
	_ObjectCallMethod( items , "AddBar", h1,"Task","9/24/2006","9/28/2006","B");
	_ObjectCallMethod( items , "AddBar", h1,"Task","9/27/2006","9/29/2006","C");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( g2antt , "EndUpdate");

2126
I do not like to specify the item padding for every column I add. The question is how can I do it automatically

OBJECT column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( g2antt , "AttachTemplate", "handle AddColumn(Column){Column{Def(48)=8;Def(49)=8;AllowDragging=False;AllowSizing = True}}");
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
_ObjectSetProperty( g2antt , "DrawGridLines", -1);
_ObjectSetProperty( g2antt , "GridLineStyle", 32);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Item");
	column = _ObjectCallMethod( columns , "Add", "Pos");
		_ObjectSetProperty( column , "Position", 0);
		_ObjectSetProperty( column , "Width", 32);
		_ObjectSetProperty( column , "AllowSizing", 0);
		_ObjectSetProperty( column , "FormatColumn", "1 index ``");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "Item A");
	_ObjectCallMethod( items , "AddItem", "Item B");
	_ObjectCallMethod( items , "AddItem", "Item C");
_ObjectCallMethod( g2antt , "EndUpdate");

2125
Stack vs Cascade

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "ScrollBySingleLine", -1);
_ObjectSetProperty( g2antt , "HeaderAppearance", 1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Type");
_ObjectSetProperty( g2antt , "BackColorAlternate", 15790320);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "AllowCreateBar", 1);
	_ObjectSetProperty( chart , "AllowLinkBars", 0);
	_ObjectSetProperty( chart , "ResizeUnitScale", 65536);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "Task","Stack") , "OverlaidType", 3);
	_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "Task","AStack") , "OverlaidType", 515);
	_ObjectSetProperty( _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Copy", "Task","Cascade") , "OverlaidType", 4);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Stack");
	_ObjectCallMethod( items , "AddBar", h,"Stack","1/2/2001","1/4/2001","A1");
	_ObjectCallMethod( items , "AddBar", h,"Stack","1/3/2001","1/5/2001","A2");
	_ObjectCallMethod( items , "AddBar", h,"Stack","1/4/2001","1/7/2001","A3");
	_ObjectCallMethod( items , "AddBar", h,"Stack","1/2/2001","1/7/2001","A4");
	_ObjectCallMethod( items , "AddBar", h,"Stack","1/8/2001","1/12/2001","A5");
	_ObjectCallMethod( items , "AddItem", );
	h = _ObjectCallMethod( items , "AddItem", "Stack-AutoArrange");
	_ObjectCallMethod( items , "AddBar", h,"AStack","1/2/2001","1/4/2001","A1");
	_ObjectCallMethod( items , "AddBar", h,"AStack","1/3/2001","1/5/2001","A2");
	_ObjectCallMethod( items , "AddBar", h,"AStack","1/4/2001","1/7/2001","A3");
	_ObjectCallMethod( items , "AddBar", h,"AStack","1/2/2001","1/7/2001","A4");
	_ObjectCallMethod( items , "AddBar", h,"AStack","1/8/2001","1/12/2001","A5");
	_ObjectCallMethod( items , "AddItem", );
	h = _ObjectCallMethod( items , "AddItem", "Cascade");
	_ObjectCallMethod( items , "AddBar", h,"Cascade","1/2/2001","1/4/2001","A1");
	_ObjectCallMethod( items , "AddBar", h,"Cascade","1/3/2001","1/5/2001","A2");
	_ObjectCallMethod( items , "AddBar", h,"Cascade","1/4/2001","1/7/2001","A3");
	_ObjectCallMethod( items , "AddBar", h,"Cascade","1/2/2001","1/7/2001","A4");
	_ObjectCallMethod( items , "AddBar", h,"Cascade","1/8/2001","1/12/2001","A5");
	_ObjectCallMethod( items , "AddItem", );
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(0,`<*>`,3) = `<%=%9%>`");
_ObjectCallMethod( g2antt , "EndUpdate");

2124
How can I change the Exclude field in the drop down filter window

OBJECT column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "HTMLPicture(`exclude`) = `gCJKBOI4NBQaBQAhQNJJIIhShQACERCAEAcRdrdcUQhQDOZCJJUBEjbbhJ7giIJOBILJziJvl4BeKibhDiIZOhFLB0KZvMx0O5hORlAB3owuNJuNZzMZhOBlFxvORnTbuHgaiIeKBMKhFf9fDIcEoPCAVEAlGI4HhBBYMCARCQVGg4IhVMCAWC2XY1Q7WJ8RBB0KROKYAYDBbzicjndD6fA/VsRHRJIhBkRbMYIGwGAQjA2fRYOEBoYjBFBx1ATCgCGQ8M7OTjSaJMDRDKIwYu5DrIMBgSAADKJTqhBhyRApAA3FAucZPPilokRJJFJxEVxCMCCgIA==`");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Description(25) = `<img>exclude</img>`");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Items");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "FilterList", 9472);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
_ObjectCallMethod( g2antt , "EndUpdate");

2123
How can I change the Exclude field in the drop down filter window

OBJECT column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Description(25) = `<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>`");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Items");
	_ObjectSetProperty( column , "DisplayFilterButton", -1);
	_ObjectSetProperty( column , "DisplayFilterPattern", 0);
	_ObjectSetProperty( column , "FilterList", 9472);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Root 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Root 2");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
_ObjectCallMethod( g2antt , "EndUpdate");

2122
The grid lines looks different then before. What should I do

OBJECT column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(0) = True");
	_ObjectSetProperty( column , "PartialCheck", -1);
_ObjectSetProperty( g2antt , "DrawGridLines", -1);
_ObjectSetProperty( g2antt , "GridLineStyle", 512);
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "DrawGridLines", _ObjectGetProperty( g2antt , "DrawGridLines"));
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "GridLineStyle", _ObjectGetProperty( g2antt , "GridLineStyle"));
_ObjectSetProperty( g2antt , "HeaderVisible", 1);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Project");
	hChild = _ObjectCallMethod( items , "InsertItem", h,"","Task 1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,hChild")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", hChild)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.SelectItem(hChild) = True");
	hChild = _ObjectCallMethod( items , "InsertItem", h,"","Task 2");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellState(hChild,0) = 1");
	hChild = _ObjectCallMethod( items , "InsertItem", h,"","Task 3");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellState(hChild,0) = 1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( g2antt , "EndUpdate");

2121
How can I hide the task/bar's extra-caption

OBJECT bar,chart,column,editor,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 96");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2011");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(44) = `<%=%C0%>`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(45) = 16");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Show");
	editor = _ObjectGetProperty( column , "Editor");
		_ObjectSetProperty( editor , "EditType", 19);
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim ediObj")
		_ObjectCallMethod(g2antt, "TemplatePut", editor)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "ediObj.Option(17) = 1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 57");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","1/3/2011","1/7/2011");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(FirstVisibleItem,``,57) = False");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","1/4/2011","1/8/2011");
_ObjectCallMethod( g2antt , "EndUpdate");

2120
How can I hide the task/bar's caption

OBJECT bar,chart,column,editor,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 96");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2011");
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(3) = `<%=%C0%>`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(4) = 18");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Show");
	editor = _ObjectGetProperty( column , "Editor");
		_ObjectSetProperty( editor , "EditType", 19);
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim ediObj")
		_ObjectCallMethod(g2antt, "TemplatePut", editor)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "ediObj.Option(17) = 1");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 56");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 1"),"Task","1/3/2011","1/7/2011");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(FirstVisibleItem,``,56) = False");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task 2"),"Task","1/4/2011","1/8/2011");
_ObjectCallMethod( g2antt , "EndUpdate");

2119
Can I sort the column by check-state

OBJECT column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Check");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(0) = True");
	_ObjectSetProperty( column , "SortType", 32);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", );
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellState(AddItem(),0) = 1");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellState(AddItem(),0) = 1");
	_ObjectCallMethod( items , "AddItem", );
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(0).SortOrder = 1");
_ObjectCallMethod( g2antt , "EndUpdate");

2118
Can I sort the column by image

OBJECT column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( g2antt , "Images", "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq" +
	"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
	"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
	"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Image");
	_ObjectSetProperty( column , "SortType", 48);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellImage(AddItem(),0) = 3");
	_ObjectCallMethod( items , "AddItem", );
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellImage(AddItem(),0) = 1");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellImage(AddItem(),0) = 2");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(0).SortOrder = 1");
_ObjectCallMethod( g2antt , "EndUpdate");

2117
Can I sort the column by value(numeric)

OBJECT column,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Value");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", column)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(17) = 1");
	_ObjectSetProperty( column , "FormatColumn", "`<fgcolor=808080><off 4><font ;6> ` + (1 index ``)  + ` </font></off></fgcolor>` + value");
	_ObjectSetProperty( column , "SortType", 17);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "1");
	_ObjectCallMethod( items , "AddItem", "10");
	_ObjectCallMethod( items , "AddItem", "2");
	_ObjectCallMethod( items , "AddItem", "20");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(0).SortOrder = 1");
_ObjectCallMethod( g2antt , "EndUpdate");

2116
Can I sort a column by cell's state (checked, unchecked) rather than caption

OBJECT column,editor,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Check");
	editor = _ObjectGetProperty( column , "Editor");
		_ObjectSetProperty( editor , "EditType", 19);
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim ediObj")
		_ObjectCallMethod(g2antt, "TemplatePut", editor)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "ediObj.Option(17) = 1");
	_ObjectSetProperty( column , "SortType", 1);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", -1);
	_ObjectCallMethod( items , "AddItem", 0);
	_ObjectCallMethod( items , "AddItem", 0);
	_ObjectCallMethod( items , "AddItem", -1);
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Columns.Item(0).SortOrder = 1");
_ObjectCallMethod( g2antt , "EndUpdate");

2115
How can I highlight(bold) the items that displays milestones (method 2)

OBJECT bar,chart,column,columns,conditionalformat,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Tasks");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", columns)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Add(`Start`).Def(18) = 1");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Add(`End`).Def(18) = 543");
	column = _ObjectCallMethod( columns , "Add", "Days");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(g2antt, "TemplatePut", column)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 258");
		_ObjectSetProperty( column , "FormatColumn", "value ? value : ``");
	column = _ObjectCallMethod( columns , "Add", "Type");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 0");
		_ObjectSetProperty( column , "Visible", 0);
conditionalformat = _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "%4 = `Milestone`");
	_ObjectSetProperty( conditionalformat , "Bold", -1);
	_ObjectSetProperty( conditionalformat , "Italic", -1);
	_ObjectSetProperty( conditionalformat , "ApplyTo", -1);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "9/20/2010");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 256");
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Add", "Task:Split");
		_ObjectSetProperty( bar , "Shortcut", "Task");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(20) = True");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "M1"),"Milestone","9/24/2010","9/24/2010");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "T1"),"Task","9/24/2010","9/28/2010");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "T2"),"Task","9/27/2010","9/28/2010");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "M3"),"Milestone","9/28/2010","9/28/2010");
_ObjectCallMethod( g2antt , "EndUpdate");

2114
How can I highlight(bold) the items that displays milestones (method 1)

OBJECT bar,chart,column,columns,conditionalformat,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Tasks");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
	_ObjectCallMethod(g2antt, "TemplatePut", columns)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Add(`Start`).Def(18) = 1");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Add(`End`).Def(18) = 543");
	column = _ObjectCallMethod( columns , "Add", "Days");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(g2antt, "TemplatePut", column)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(18) = 258");
		_ObjectSetProperty( column , "FormatColumn", "value ? value : ``");
conditionalformat = _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "%3 = 0");
	_ObjectSetProperty( conditionalformat , "Bold", -1);
	_ObjectSetProperty( conditionalformat , "Italic", -1);
	_ObjectSetProperty( conditionalformat , "ApplyTo", -1);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "9/20/2010");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 256");
	bar = _ObjectCallMethod( _ObjectGetProperty( chart , "Bars") , "Add", "Task:Split");
		_ObjectSetProperty( bar , "Shortcut", "Task");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
		_ObjectCallMethod(g2antt, "TemplatePut", bar)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(20) = True");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectSetProperty( items , "AllowCellValueToItemBar", -1);
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "M1"),"Milestone","9/24/2010","9/24/2010");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "T1"),"Task","9/24/2010","9/28/2010");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "T2"),"Task","9/27/2010","9/28/2010");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "M3"),"Milestone","9/28/2010","9/28/2010");
_ObjectCallMethod( g2antt , "EndUpdate");

2113
Bars with gradient shows no border or frame arround. What can be done (method 2)

OBJECT bar,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "1/1/2001");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(False) = 48");
_ObjectSetProperty( g2antt , "DefaultItemHeight", 24);
bar = _ObjectCallMethod( _ObjectGetProperty( _ObjectGetProperty( g2antt , "Chart") , "Bars") , "Add", "E1");
	_ObjectSetProperty( bar , "Color", 0);
	_ObjectSetProperty( bar , "StartColor", 65280);
	_ObjectSetProperty( bar , "EndColor", 65535);
	_ObjectSetProperty( bar , "Pattern", 96);
	_ObjectSetProperty( bar , "Height", 20);
bar = _ObjectCallMethod( _ObjectGetProperty( _ObjectGetProperty( g2antt , "Chart") , "Bars") , "Add", "E2");
	_ObjectSetProperty( bar , "Color", 0);
	_ObjectSetProperty( bar , "StartColor", 65280);
	_ObjectSetProperty( bar , "EndColor", 65535);
	_ObjectSetProperty( bar , "Pattern", 96);
	_ObjectSetProperty( bar , "Height", 20);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim barObj")
	_ObjectCallMethod(g2antt, "TemplatePut", bar)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "barObj.Def(53) = `[frame=RGB(255,0,0),framethick]`");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", );
	h = _ObjectCallMethod( items , "AddItem", "no border");
	_ObjectCallMethod( items , "AddBar", h,"E1","1/2/2001","1/8/2001","");
	h = _ObjectCallMethod( items , "AddItem", "w/h boder");
	_ObjectCallMethod( items , "AddBar", h,"E2","1/2/2001","1/8/2001","");
	_ObjectCallMethod( items , "AddItem", );
_ObjectCallMethod( g2antt , "EndUpdate");

2112
Bars with gradient shows no border or frame arround. What can be done (method 1)

OBJECT bar,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
_ObjectSetProperty( _ObjectGetProperty( g2antt , "Chart") , "FirstVisibleDate", "1/1/2001");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(False) = 48");
_ObjectSetProperty( g2antt , "DefaultItemHeight", 24);
bar = _ObjectCallMethod( _ObjectGetProperty( _ObjectGetProperty( g2antt , "Chart") , "Bars") , "Add", "E2");
	_ObjectSetProperty( bar , "Color", 0);
	_ObjectSetProperty( bar , "StartColor", 65280);
	_ObjectSetProperty( bar , "EndColor", 65535);
	_ObjectSetProperty( bar , "Pattern", 96);
	_ObjectSetProperty( bar , "Height", 20);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", );
	h = _ObjectCallMethod( items , "AddItem", "no border");
	_ObjectCallMethod( items , "AddBar", h,"E2","1/2/2001","1/8/2001","");
	h = _ObjectCallMethod( items , "AddItem", "w/h boder");
	_ObjectCallMethod( items , "AddBar", h,"E2","1/2/2001","1/8/2001","");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,53) = `[frame=RGB(255,0,0),framethick]`");
	_ObjectCallMethod( items , "AddItem", );
_ObjectCallMethod( g2antt , "EndUpdate");

2111
Is it possible to display auto-numbers (rows-numbers) for non-empty items only

OBJECT column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Chart.PaneWidth(False) = 128");
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Items");
	column = _ObjectCallMethod( columns , "Add", "Pos");
		_ObjectSetProperty( column , "FormatColumn", "len(%C0) ? 1 pos `` : ``");
		_ObjectSetProperty( column , "Position", 0);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "Item A");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddItem", "Item B");
	_ObjectCallMethod( items , "AddItem", "");
	_ObjectCallMethod( items , "AddItem", "Item C");
_ObjectCallMethod( g2antt , "EndUpdate");

2110
Is it possible to separate the group of items using horizontal-lines (root-items)

OBJECT chart,column,columns,conditionalformat,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "VisualAppearance") , "Add", 1,"gBFLBCJwBAEHhEJAAEhABLEIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIaRiAUbQSKEPxLEiPmqSHIEWwtDiBZgieTpNhAMg1CTNU4RAKoY" +
	"RzBKeZ7kGZIVjKMofURRDpxBBMAkB");
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
_ObjectSetProperty( g2antt , "DefaultItemHeight", 24);
_ObjectSetProperty( g2antt , "SelBackMode", 1);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 196");
	_ObjectSetProperty( chart , "SelBackColor", _ObjectGetProperty( g2antt , "SelBackColor"));
columns = _ObjectGetProperty( g2antt , "Columns");
	column = _ObjectCallMethod( columns , "Add", "Default");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(g2antt, "TemplatePut", column)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "colObj.Def(0) = True");
		_ObjectSetProperty( column , "PartialCheck", -1);
	column = _ObjectCallMethod( columns , "Add", "Position");
		_ObjectSetProperty( column , "FormatColumn", "1 + ((1 rpos ``) contains `.`)");
		_ObjectSetProperty( column , "Visible", 0);
conditionalformat = _ObjectCallMethod( _ObjectGetProperty( g2antt , "ConditionalFormats") , "Add", "%C1");
	_ObjectSetProperty( conditionalformat , "BackColor", 16777216);
	_ObjectSetProperty( conditionalformat , "ChartBackColor", _ObjectGetProperty( conditionalformat , "BackColor"));
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Group 1");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "InsertItem", h,"","Child 1"),"Task","1/3/2001","1/13/2001");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "InsertItem", h,"","Child 2"),"Task","1/4/2001","1/14/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	h = _ObjectCallMethod( items , "AddItem", "Group 2");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "InsertItem", h,"","Child 1"),"Task","1/3/2001","1/13/2001");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "InsertItem", h,"","Child 2"),"Task","1/4/2001","1/14/2001");
_ObjectCallMethod( g2antt , "EndUpdate");

2109
How can specify a black pattern for the task

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "DefaultItemHeight", 22);
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 0");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Frames");
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Task");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/12/2001","bar A");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,`bar A`,33) = 1");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/14/2001","1/24/2001","bar B");
_ObjectCallMethod( g2antt , "EndUpdate");

2108
Can I define a bar so it automatically fills the current item/row height (same height)

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Task");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 96");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`).Height = -1");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task A"),"Task","1/2/2001","1/5/2001");
	h = _ObjectCallMethod( items , "AddItem", "Task A");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/5/2001","");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ItemBar(h,``,33) = 255");
_ObjectCallMethod( g2antt , "EndUpdate");

2107
How can I highlight a specified date for the entire chart (Method 2)

OBJECT chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 96");
	_ObjectSetProperty( chart , "UnitWidth", 18);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod( chart , "MarkTimeZone", "zone1","1/8/2001","1/9/2001",0);
	_ObjectCallMethod( chart , "MarkTimeZone", "zone2","1/2/2001","1/4/2001",0,"50");
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "");
	h = _ObjectCallMethod( items , "AddItem", "Task(I)");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2001","1/12/2001","I");
	_ObjectCallMethod( items , "AddItem", "");
_ObjectCallMethod( g2antt , "EndUpdate");

2106
How can I highlight a specified date for the entire chart, including the header (Method 1)

OBJECT chart,g2antt,insidezoomformat,insidezooms,items;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 96");
	_ObjectSetProperty( chart , "UnitWidth", 18);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectSetProperty( chart , "AllowInsideZoom", -1);
	_ObjectSetProperty( chart , "AllowResizeInsideZoom", 0);
	_ObjectSetProperty( chart , "InsideZoomOnDblClick", 0);
	insidezoomformat = _ObjectGetProperty( chart , "DefaultInsideZoomFormat");
		_ObjectSetProperty( insidezoomformat , "ForeColor", 16777215);
		_ObjectSetProperty( insidezoomformat , "BackColorChart", 65536);
		_ObjectSetProperty( insidezoomformat , "BackColor", 65536);
	insidezooms = _ObjectGetProperty( chart , "InsideZooms");
		_ObjectSetProperty( insidezooms , "SplitBaseLevel", 0);
		_ObjectSetProperty( insidezooms , "DefaultWidth", 18);
		_ObjectSetProperty( _ObjectCallMethod( insidezooms , "Add", "1/8/2001") , "AllowInsideFormat", 0);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "");
	h = _ObjectCallMethod( items , "AddItem", "Task(I)");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2001","1/12/2001","I");
	_ObjectCallMethod( items , "AddItem", "");
_ObjectCallMethod( g2antt , "EndUpdate");

2105
How can I highlight a specified date of a specified item

OBJECT chart,g2antt,items,note,notes;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 96");
	_ObjectSetProperty( chart , "UnitWidth", 18);
	_ObjectSetProperty( chart , "LevelCount", 2);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "");
	h = _ObjectCallMethod( items , "AddItem", "Task(D)");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2001","1/12/2001","D");
	_ObjectCallMethod( items , "AddItem", "");
notes = _ObjectGetProperty( _ObjectGetProperty( g2antt , "Chart") , "Notes");
	note = _ObjectCallMethod( notes , "Add", "NoteD",h,"1/8/2001","<b><%dd%></b><br><%m%><br><%yy%>");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim notObj")
		_ObjectCallMethod(g2antt, "TemplatePut", note)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartFixedWidth(1) = 18");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartShadow(1) = False");
_ObjectCallMethod( g2antt , "EndUpdate");

2104
How can I display the start/end of the task within its margins (notes)

OBJECT chart,g2antt,items,note,notes;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(False) = 96");
	_ObjectSetProperty( chart , "UnitWidth", 18);
	_ObjectSetProperty( chart , "LevelCount", 2);
items = _ObjectGetProperty( g2antt , "Items");
	_ObjectCallMethod( items , "AddItem", "");
	h = _ObjectCallMethod( items , "AddItem", "Task(T)");
	_ObjectCallMethod( items , "AddBar", h,"Task","1/5/2001","1/12/2001","T");
	_ObjectCallMethod( items , "AddItem", "");
notes = _ObjectGetProperty( _ObjectGetProperty( g2antt , "Chart") , "Notes");
	note = _ObjectCallMethod( notes , "Add", "NoteTS",h,"T","");
		_ObjectSetProperty( note , "ShowLink", 0);
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim notObj")
		_ObjectCallMethod(g2antt, "TemplatePut", note)
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartText(0) = `<%d%>`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartHOffset(0) = 9");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartFixedWidth(0) = 18");
	note = _ObjectCallMethod( notes , "Add", "NoteTE",h,"T","");
		_ObjectSetProperty( note , "RelativePosition", "E-1");
		_ObjectSetProperty( note , "ShowLink", 0);
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartText(0) = `<%d%>`");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartHOffset(0) = 9");
		_ObjectCallMethod(g2antt, "ExecuteTemplate", "notObj.PartFixedWidth(0) = 18");
_ObjectCallMethod( g2antt , "EndUpdate");

2103
Is it possible to show the tasks not-overlaid when the item is collapsed and overlaid once the user expands the item

// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
FUNCTION g2anttEvents_BeforeExpandItem(OBJECT g2antt, INT Item, VARIANT Cancel)
	_ObjectCallMethod( g2antt , "Refresh");
END

OBJECT bar,chart,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "Indent", 16);
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
_ObjectSetProperty( g2antt , "HasLines", 1);
_ObjectSetProperty( g2antt , "DrawGridLines", 1);
_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Tasks");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstVisibleDate", "9/20/2006");
	_ObjectSetProperty( chart , "ShowCollapsedBars", -1);
	_ObjectSetProperty( chart , "LevelCount", 2);
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 128");
	_ObjectSetProperty( chart , "DrawGridLines", 1);
	bar = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "OverlaidType", 3);
		_ObjectSetProperty( bar , "Color", 0);
		_ObjectSetProperty( bar , "StartColor", 12895428);
		_ObjectSetProperty( bar , "EndColor", 12895428);
		_ObjectSetProperty( bar , "Pattern", 32);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Project 1");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Resources");
	_ObjectCallMethod( items , "AddBar", h1,"Task","9/21/2006","9/25/2006","A");
	_ObjectCallMethod( items , "AddBar", h1,"Task","9/24/2006","9/28/2006","B");
	_ObjectCallMethod( items , "AddBar", h1,"Task","9/27/2006","9/29/2006","C");
	h = _ObjectCallMethod( items , "AddItem", "Project 2");
	h1 = _ObjectCallMethod( items , "InsertItem", h,"","Resources");
	_ObjectCallMethod( items , "AddBar", h1,"Task","9/21/2006","9/25/2006","A");
	_ObjectCallMethod( items , "AddBar", h1,"Task","9/24/2006","9/28/2006","B");
	_ObjectCallMethod( items , "AddBar", h1,"Task","9/27/2006","9/29/2006","C");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
_ObjectCallMethod( g2antt , "EndUpdate");

2102
Is it possible to display the label of the level without truncating / no clip

OBJECT chart,g2antt,level;

g2antt =  ObjectByName("AN1") ;
_ObjectCallMethod( g2antt , "BeginUpdate");
chart = _ObjectGetProperty( g2antt , "Chart");
	_ObjectSetProperty( chart , "FirstWeekDay", 0);
	_ObjectSetProperty( chart , "FirstVisibleDate", "12/31/2000");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2antt, "TemplatePut", chart)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.PaneWidth(0) = 0");
	_ObjectSetProperty( chart , "LevelCount", 3);
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(0)");
		_ObjectSetProperty( level , "Label", 16);
		_ObjectSetProperty( level , "FormatLabel", "`<c>` + value");
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(1)");
		_ObjectSetProperty( level , "Label", 256);
		_ObjectSetProperty( level , "FormatLabel", "`<c>` + value");
	level = _ObjectCallMethod(g2antt, "ExecuteTemplate", "chaObj.Level(2)");
		_ObjectSetProperty( level , "Alignment", 256);
		_ObjectSetProperty( level , "FormatLabel", "weekday(dvalue) = 0 ? `<b>` + value : ``");
		_ObjectSetProperty( level , "DrawTickLines", 0);
		_ObjectCallMethod( level , "DrawTickLinesFrom", 1,1);
		_ObjectSetProperty( level , "DrawGridLines", -1);
	_ObjectSetProperty( chart , "UnitWidth", 6);
	_ObjectSetProperty( chart , "DrawGridLines", -1);
_ObjectCallMethod( g2antt , "EndUpdate");

2101
How do I get the item's auto-number, when using FormatColumn property, as CellValue gets empty

// SelectionChanged event - Fired after a new item has been selected.
FUNCTION g2anttEvents_SelectionChanged()
	OBJECT items;
	items = _ObjectGetProperty( g2antt , "Items");
		_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj")
		_ObjectCallMethod(g2antt, "TemplatePut", items)
		Message( "pos: " );
		Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellCaption(FocusItem,1)") );
		Message( "rpos(1): " );
		Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellCaption(FocusItem,2)") );
		Message( "rpos(2): " );
		Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellCaption(FocusItem,3)") );
		Message( "apos: " );
		Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellCaption(FocusItem,4)") );
		Message( "index: " );
		Message( _ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.CellCaption(FocusItem,5)") );
END

OBJECT column,columns,g2antt,items;

g2antt =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2anttEvents", g2antt);
_ObjectCallMethod( g2antt , "BeginUpdate");
_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
_ObjectSetProperty( g2antt , "DrawGridLines", -2);
_ObjectSetProperty( g2antt , "HeaderAppearance", 4);
columns = _ObjectGetProperty( g2antt , "Columns");
	_ObjectCallMethod( columns , "Add", "Items");
	column = _ObjectCallMethod( columns , "Add", "pos");
		_ObjectSetProperty( column , "FormatColumn", "1 pos ``");
		_ObjectSetProperty( column , "Position", 0);
		_ObjectSetProperty( column , "Width", 48);
		_ObjectSetProperty( column , "AllowSizing", 0);
	column = _ObjectCallMethod( columns , "Add", "rpos(1)");
		_ObjectSetProperty( column , "FormatColumn", "1 rpos ``");
		_ObjectSetProperty( column , "Position", 1);
		_ObjectSetProperty( column , "Width", 48);
		_ObjectSetProperty( column , "AllowSizing", 0);
	column = _ObjectCallMethod( columns , "Add", "rpos(2)");
		_ObjectSetProperty( column , "FormatColumn", "1 rpos `.||A-Z`");
		_ObjectSetProperty( column , "Position", 2);
		_ObjectSetProperty( column , "Width", 48);
		_ObjectSetProperty( column , "AllowSizing", 0);
	column = _ObjectCallMethod( columns , "Add", "apos");
		_ObjectSetProperty( column , "FormatColumn", "1 apos ``");
		_ObjectSetProperty( column , "Position", 3);
		_ObjectSetProperty( column , "Width", 48);
		_ObjectSetProperty( column , "AllowSizing", 0);
	column = _ObjectCallMethod( columns , "Add", "index");
		_ObjectSetProperty( column , "FormatColumn", "1 index ``");
		_ObjectSetProperty( column , "Position", 4);
		_ObjectSetProperty( column , "Width", 48);
		_ObjectSetProperty( column , "AllowSizing", 0);
items = _ObjectGetProperty( g2antt , "Items");
	h = _ObjectCallMethod( items , "AddItem", "Item 1");
	_ObjectCallMethod( items , "InsertItem", h,"","Child 1");
	hSel = _ObjectCallMethod( items , "InsertItem", h,"","Child 2");
	_ObjectCallMethod(g2antt, "TemplatePut", "Dim iteObj,h")
	_ObjectCallMethod(g2antt, "TemplatePut", items)
	_ObjectCallMethod(g2antt, "TemplatePut", h)
	_ObjectCallMethod(g2antt, "ExecuteTemplate", "iteObj.ExpandItem(h) = True");
	_ObjectCallMethod( items , "AddItem", "Item 2");
	_ObjectCallMethod( items , "AddItem", "Item 3");
_ObjectCallMethod( g2antt , "EndUpdate");
_ObjectCallMethod(g2antt, "TemplatePut", "Dim hSel")
_ObjectCallMethod(g2antt, "TemplatePut", hSel)
_ObjectCallMethod(g2antt, "ExecuteTemplate", "Items.SelectItem(hSel) = True");